目前程序是这么写的:
try
Excel:= CreateOleObject('Excel.Application');
WorkBook:=CreateOleObject('Excel.Sheet');
except
screen.Cursor :=crDefault ;
OkMessageDlg('微软Excel没有安装,请先安装Excel软件。');
abort;
end;
WorkBook := Excel.workBooks.Add;
导出到EXCEL时,如已起了一个EXCEL进程。再导出时,还会去起一个EXCEL进程。
请问如何不另起一个进程?就是判断当前是否有EXCEL打开,如果有EXCEL打开,就在原EXCEL基础上新建一页,而不是重起一个EXCEL进程。如果没有EXCEL打开,就启动一个EXCEL进程。
请问这个程序怎么写?谢谢
try
Excel:= CreateOleObject('Excel.Application');
WorkBook:=CreateOleObject('Excel.Sheet');
except
screen.Cursor :=crDefault ;
OkMessageDlg('微软Excel没有安装,请先安装Excel软件。');
abort;
end;
WorkBook := Excel.workBooks.Add;
导出到EXCEL时,如已起了一个EXCEL进程。再导出时,还会去起一个EXCEL进程。
请问如何不另起一个进程?就是判断当前是否有EXCEL打开,如果有EXCEL打开,就在原EXCEL基础上新建一页,而不是重起一个EXCEL进程。如果没有EXCEL打开,就启动一个EXCEL进程。
请问这个程序怎么写?谢谢
解决方案 »
- 请问下virtual treeview 为什么会内存泄漏了?
- WEBSNAP中UTF-8问题 for delphi7??????
- 在调用应用程序服务器的函数时为何会出现多次调用的情况?
- 插入数据时出现 " no primary key value for foreign key 'bb01' in table 'bc01' " 错误,是什么意思谢谢!!
- 改变窗体大小后,下拉条怎么改变
- richedit的字间距问题(在线等待)
- 如何获取两个tdatetime类型日期的时间差(即差隔多少小时或多少分钟或多少秒)?
- 一表是有两个字段,一个是自增字段ID,一个是IMAGE类型的字段,我要在了存段过程中根据指定的一批ID,如何才到让它返回一批的IMAGE字段
- 请教数组
- 谁能给我一点Delphi中关于Socket编程的资料
- 大家帮我看一下这里错在哪
- 在线程中的slice
GetActiveOleObject('Excel.Application');
except
try
Excel:= CreateOleObject('Excel.Application');
WorkBook:=CreateOleObject('Excel.Sheet');
except
screen.Cursor :=crDefault ;
OkMessageDlg('微软Excel没有安装,请先安装Excel软件。');
abort;
end;
end;
var
DataLine:TstringList;
i:integer;
Linestr:string;
begin
DataLine:=TStringList.Create;
for i:=0 to datat.FieldCount-1 do
Linestr:=Linestr+datat.Fields.Fields[i].FieldName+#9;
DataLine.Add(Linestr);
Linestr:='';
while not datat.Eof do
begin
for i:=0 to datat.FieldCount-1 do
Linestr:=Linestr+datat.Fields.Fields[i].AsString+#9;
DataLine.Add(Linestr);
datat.Next;
end;
dataline.SaveToFile('country.xls');
FreeAndNil(DataLine);
end;双击生成的文件,既可用 excel 打开
我不懂的地方是:1、如何判断EXCEL进程是否已经打开?
2、如果EXCEL进程已经打开,如何新建已经打开的EXCEL的一个Sheet页,并不会冲掉原先的Sheet页上的数据。
多谢。
我的email是[email protected]