当前位置:主页>仓库管理软件> 列表

关于Excel打印预览问题看者有分,就这么多分了

销售管理软件版1楼: 我写了下面的代码
procedure TForm1.Button1Click(Sender: TObject);
var
openfilename : string;
begin
OpenFileName := ''c:\book1.xls'';
OleContainer1.CreateObjectFromFile(OPenFileName,FALSE);
OleContainer1.DoVerb(ovShow);
MExceL:=OleContainer1.OleObject;
MExceL.Application.CommandBars[''Standard''].Visible:= False;
MExceL.Application.CommandBars[''Formatting''].Visible:=false;
MExceL.application.ActiveSheet.Preview;
end;
时报错请问打印预览的那句代码怎么写呀

2楼: MExceL.application.ActiveSheet.PrintPreview; 如进销存表格下载

3楼: 也就是怎样掉出excel的预览窗口呀

4楼: 不是给你写了么??

5楼: 用 Anylib 做报表
http://www.anylib.com

6楼: 不行呀大哥,你不信试一下呀,其中用了OleContainer倥件

销售管理软件版7楼: //OleContainer 激活的情况下不能预览,需要改一下:
procedure TForm1.Button1Click(Sender: TObject);
var
OpenFileName : string;
begin
OpenFileName := ''c:\book1.xls'';
OleContainer1.CreateObjectFromFile(OPenFileName, False);
OleContainer1.AllowActiveDoc := False;
OleContainer1.AllowInPlace := False;
OleContainer1.DoVerb(ovShow);
MExcel := OleContainer1.OleObject;
MExcel.ActiveSheet.PrintPreview;
end;

8楼: 小弟是想调出Excel的打印预览窗口不是Excel窗口呀,但是我试了大哥您的代码是调出的EXcel窗口呀,求大哥在帮帮忙好吗

9楼: 1、能调出打印预览窗口啊,你用我的代码啊:
procedure TForm1.Button1Click(Sender: TObject);
var
OpenFileName : string;
begin
OpenFileName := ''c:\book1.xls'';
OleContainer1.CreateObjectFromFile(OPenFileName, False);
OleContainer1.AllowActiveDoc := False;
OleContainer1.AllowInPlace := False;
OleContainer1.DoVerb(ovShow);
MExcel := OleContainer1.OleObject;
MExcel.ActiveSheet.PrintPreview;
end;
2、另外打印预览窗口不能嵌入到 OleContainer 里。

10楼: 我想咱俩想的不一样,刚才我试了一下,执行的是调用整个excel呀,还要点击一下excel的打印预览按钮才能打印预览呀
能不能直接就调用打印预览窗口而不用调用整个excel然后在点击一下excel的打印预览按钮,因为调用整个Excel文档我早就实现了,帮帮忙好吗,在您的机子上运行一下好吗,万分感谢,不管能不能行,都非常感谢

11楼: 我知道了,可能你的 MExcel 是个控件吧,我没用控件。
procedure TForm1.Button1Click(Sender: TObject);
var
OpenFileName: string;
MExcel: OleVariant;
begin
OpenFileName := ''c:\book1.xls'';
OleContainer1.CreateObjectFromFile(OPenFileName, False);
OleContainer1.AllowActiveDoc := False;
OleContainer1.AllowInPlace := False;
OleContainer1.DoVerb(ovShow);
MExcel := OleContainer1.OleObject;
MExcel.ActiveSheet.PrintPreview;
end;
这个过程只需要 OleContainer 参与,我试过没问题。

12楼: 老大,你真的是在调用Excel文档,咱俩是不是理解错了,我不想调用Excel文档,我会调用excel文档,只是不会调用excel的浏览窗口 如蓝牙设备管理软件

13楼: 哥们,我知道你很急,不过错误可能不在编程上,没出现预览窗口的原因很多:
1、Excel 工作薄必须有可打印内容(也就是表格里要有点东西,不能是空的),才会出现预览窗口;
2、必须装上打印机驱动才能打开预览窗口,这个不多说了。
如果存在上述情况,只会弹出 Excel 文档而不会弹出预览窗口。
3、可能我理解错了,不过在我这确实没问题。调试环境:Windows XP + Delphi 7.0 + Office XP。

销售管理软件版14楼: try
ExcelApp := CreateOleObject(''Excel.Application''); //创建 Excel 对象
ExcelApp.caption:=title; //更改 Excel 标题栏

{ FWillWriteHead := true;
if FileExists(FileName) then DeleteFile(FileName);
aFileStream := TFileStream.Create(FileName, fmCreate);
Try
Save2Stream(aFileStream);
Finally
aFileStream.Free;
end; }

ExcelApp.workBooks.Open(FileName);
// ExcelApp.WorkBooks.Add; //添加新工作簿

except
showMessage(''提示:''+#13#13+''你没有装Excel!'');
exit;
end;
ExcelApp.visible:= true; //显示当前窗口:


Application.ProcessMessages;

// 设置第1个工作表为活动工作表:
ExcelApp.WorkSheets[1].Activate;

//或
// ExcelApp.WorksSheets[ ''Sheet1'' ].Activate;
//ExcelApp.WorkSheets[''第四章''].activate; //打开名为第四章的工作表
Sheet := ExcelApp.WorkSheets[1];
Sheet.PageSetup.Orientation:= Orientation; ////横向打印 2

Sheet.PageSetup.CenterHorizontally := HorToCenter; //是否水平居中

Sheet.PageSetup.CenterVertically := VerToCenter; //是否垂直居中

//选择画表格线的范围 //速度快
Range:=Sheet.Range[Sheet.cells[1,1].Address+'':''
+Sheet.cells[dataset.RecordCount+1,dataset.FieldCount].Address];

Range.Borders.LineStyle:=1;
Range.Font.Name:=ContentFontName; //设置字体和大小
Range.Font.Size:=StrToInt(ContentFontSize);

ExcelApp.ActiveSheet.Rows[1].Font.Name:= HeaderFontName;
ExcelApp.ActiveSheet.Rows[1].Font.Size:= StrToInt(HeaderFontSize);


Sheet.Cells.Columns.AutoFit; //自动调整列宽
ExcelApp.ActiveSheet.Rows[1].RowHeight := 1/0.035/2; // 1厘米

ExcelApp.ActiveSheet.PageSetup.CenterHeader := title;
ExcelApp.ActiveSheet.PageSetup.CenterHeader := ''&'' + ''"'' +
titleFontName+'',加粗'' + ''"'' + ''&''+titleFontSize+title;
//b.页脚:
ExcelApp.ActiveSheet.PageSetup.CenterFooter := ''第&P页'';
//c.页眉到顶端边距0.5cm:
// ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 0.5/0.035;
ExcelApp.ActiveSheet.PrintPreview;

15楼: 谢谢大家,我知道了
尤其是vvyang,十分的感谢您,还有delfier我没有那么多分只有这些了
再次感谢

16楼: 多人接受答案了。