一个关于从DELPHI中导出数据到EXCEL的问题! ( 积分: 50 )

  • 主题发起人 主题发起人 poim111
  • 开始时间 开始时间
P

poim111

Unregistered / Unconfirmed
GUEST, unregistred user!
先来看一段代码:
procedure TForm1.Button1Click(Sender: TObject);
var
i,row: integer;
ExcelApplication1: Variant;
begin
ExcelApplication1 := CreateOleObject( 'Excel.Application' );
ExcelApplication1.Workbooks.Open('E:/陈晶/测试/1111.xls',
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);
ExcelApplication1.Worksheets[1].Activate;
Query1.Open;
//逐行写入DBGRIG的表中的内容
for i:=0 to Query1.Fields.Count-1do
ExcelApplication1.Cells.Item[1,i+1]:=DBGrid1.Columns.Items
.Title.Caption;
//将DBGRID的各字段名写入EXCEL第一行
row:=2;
while not Query1.Eofdo
begin
for i:=0 to Query1.Fields.Count-1do
begin
ExcelApplication1.Cells.Item[row,i+1]:= query1.Fields.AsString;
end;
row:=row+1;
Query1.Next;
end;
ExcelApplication1.Quit;
ExcelApplication1.Disconnect;
Application.MessageBox('成功保存文件','提示',0);
end;
在这段程序执行完毕后总是提示是否对“111.XLS”进行保存!
请高手们指教一下如何让他不提示而直接对“111.XLS”进行保存!
请在原程序上进行改动!
 
先来看一段代码:
procedure TForm1.Button1Click(Sender: TObject);
var
i,row: integer;
ExcelApplication1: Variant;
begin
ExcelApplication1 := CreateOleObject( 'Excel.Application' );
ExcelApplication1.Workbooks.Open('E:/陈晶/测试/1111.xls',
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);
ExcelApplication1.Worksheets[1].Activate;
Query1.Open;
//逐行写入DBGRIG的表中的内容
for i:=0 to Query1.Fields.Count-1do
ExcelApplication1.Cells.Item[1,i+1]:=DBGrid1.Columns.Items
.Title.Caption;
//将DBGRID的各字段名写入EXCEL第一行
row:=2;
while not Query1.Eofdo
begin
for i:=0 to Query1.Fields.Count-1do
begin
ExcelApplication1.Cells.Item[row,i+1]:= query1.Fields.AsString;
end;
row:=row+1;
Query1.Next;
end;
ExcelApplication1.Quit;
ExcelApplication1.Disconnect;
Application.MessageBox('成功保存文件','提示',0);
end;
在这段程序执行完毕后总是提示是否对“111.XLS”进行保存!
请高手们指教一下如何让他不提示而直接对“111.XLS”进行保存!
请在原程序上进行改动!
 
你是要把dbgrid导出到excel吗??装个ehlib,利用里面的 SaveDBGridEhToExportFile函数很容易实现,而且可以保存成很多格式,需要的话我可以贴出例子。
 
好啊,最好在我的程序的基础上做改动
 
to fukadalwx:请贴出来把,谢谢,向你学习学习,谢谢
 
....
ExcelApplication1.ActiveWorkBook.Save;

ExcelApplication1.Quit;
.....
 
TO TrustMe:
试了你的改动,可以实现但是提示错误“ Method 'Disconnect' not supported by automation object”
接下来如何改动?
 
ExcelApplication1.Disconnect;
把这一句改成:ExcelApplication1:= UnAssigned;
ExcelApplication1不支持Disconnect方法。
 
谢谢!改动成功了!
 
ExcelApp.DisplayAlerts := False ;
//出现错误不提示
ExcelApp.Workbooks[1].SaveAs(sFileName);
//另存为文件名
ExcelApp.Workbooks[1].SaveEd:=True;
//保存过。
 
还有你的不能保存多层表头
 

Similar threads

I
回复
0
查看
847
import
I
I
回复
0
查看
610
import
I
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部