快救救我!!ole的excel打印问题(100分)

  • 主题发起人 主题发起人 chaolong2002
  • 开始时间 开始时间
C

chaolong2002

Unregistered / Unconfirmed
GUEST, unregistred user!
我做了个excel表格管理器,用了ole来处理excel,但是excel激活且的菜
单file被关掉,我怎样打印编缉后的excel表?
 
以下是我封撞在DLL中的一段代码
创建EXCEL
var
ExcelApp:Variant;

function ExcelName(ExcelName:string;SheetsCount:integer;SheetsName:string):Boolean;
var //创建对象和表单元
Posion,i:integer;
SheetN:array[1..50] of string;
begin
CoInitialize(nil);
try
ExcelApp:=CreateOleobject('Excel.Application');
if ExcelName<>'' then
ExcelApp.Caption:=ExcelName
else
ExcelApp.Caption:='Excel Report';
ExcelApp.WorkBooks.Add;
if sheetscount<> 0 then
for i:=1 to sheetscount do begin
ExcelApp.sheets.add;
end;
SheetsName:=SheetsName+':';
for i:=1 to 50 do
begin
posion:=Pos(':',SheetsName);
if Posion>0 then
begin
SheetN:=copy(SheetsName,1,Posion-1);
SheetsName:=copy(SheetsName,Posion+1,length(SheetsName));
end
else
break;
end;
SheetsCount:=SheetsCount+3;
if SheetsCount=0 then
begin
if SheetN[1]='' then
else
ExcelApp.Workbooks[1].Sheets[1].name:=SheetN[1];
if SheetN[2]='' then
else
ExcelApp.Workbooks[1].Sheets[2].name:=SheetN[2];
if SheetN[3]='' then
else
ExcelApp.Workbooks[1].Sheets[3].name:=SheetN[3];
end
else
begin
for i:=1 to SheetsCount do
begin
if SheetN='' then
break
else
ExcelApp.Workbooks[1].Sheets.name:=SheetN;
end;
end;
ExcelApp.Visible:=true;
result:=true;
except
result:=false;
end;
end;

如果你是动态创建EXCEL对象的话/
那么你现在就拥有对他的操作权/
你可以在创建完以后进行各类数据操作和表格样式的定制/
ExcelWorksheet1.PrintPreview; 这是打印预缆
ExcelWorksheet1.PrintOut; 这是打印输出

做excel表格管理器,最好的方式就是作成COM组件的方式,这样你就可以在外面挂接一个
操作面板来对你创建的EXCEL对象进行操作啦/非常方便的/

 
to aq100:
谢谢你帮助,可是我只会用ole,而且我已做到最后阶段了,能不能写用ole的打印和
预览的例子给我?
 
看见这一段了没有:
var
ExcelApp:Variant;
ExcelApp:=CreateOleobject('Excel.Application');
ExcelApp.Caption:=ExcelName
这就是创建EXCEL的OLE对象啊,因该说比你用OLE控件简单,还有就是你可以在大富翁里
搜一下EXCEL,很快就有一堆答案的。
 
建议快捷键
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部