DELPHI如何将数据导出到指定格式的EXCEL模版参考代码1
Delphi(Pascal) code
path:=ExtractFilePath(Application.ExeName);
if self.OpenDialog1.Execute then
filename:=self.OpenDialog1.FileName;
try
Self.ExcelApplication1:=TExcelApplication.Create(self);
Self.ExcelApplication1.Connect;
except
messagebox(application.Handle,'⽆法⽣成Excel报表,请确定安装了Excel后重试','信息',mb_ok or mb_iconinformation);
exit;
end;
Self.ExcelApplication1.Visible[0]:=true;
self.ExcelApplication1.DisplayAlerts[0]:=False;
self.ExcelApplication1.Workbooks.Open(filename,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,0);
self.ExcelWorkbook1.ConnectTo(Self.ExcelApplication1.Workbooks[1]);
self.ExcelWorksheet1:=TExcelWorkSheet.Create(self);
self.ExcelWorksheet1.ConnectTo(Self.ExcelWorkbook1.Worksheets[1] as _worksheet);
i:=self.StringGrid2.RowCount;
for j:=1to i-1do
begin
xh:=Self.StringGrid2.Cells[0,j];
pscj:=self.StringGrid2.Cells[2,j];
kscj:=Self.StringGrid2.Cells[4,j];
zpcj:=Self.StringGrid2.Cells[5,j];
lls.Item[l+j,m]:=pscj;
lls.Item[l+j,n]:=kscj;
lls.Item[l+j,k]:=zpcj;
end;
Self.ExcelWorksheet1.SaveAs(filename);
Self.ExcelApplication1.Disconnect;
Self.ExcelWorkbook1.Disconnect;
Self.ExcelWorksheet1.Disconnect;
Delphi(Pascal) code
path:=ExtractFilePath(Application.ExeName);
if self.OpenDialog1.Execute then
filename:=self.OpenDialog1.FileName;
try
Self.ExcelApplication1:=TExcelApplication.Create(self);
Self.ExcelApplication1.Connect;
except
messagebox(application.Handle,'⽆法⽣成Excel报表,请确定安装了Excel后重试','信息',mb_ok or mb_iconinformation); e…
try
excel := CreateOleObject('Excel.Application');
WorkBook := excel.Workbooks.Add('模板的路径.xls');  Sheet := WorkBook.Worksheets[1];
except
excel := NULL;
DJShow('请先安装Excel97/2000。');
EXIT;
end;
excel.Visible:=true;
I := 2;
//假设是从数据库取数据
with ADOQuery1 do
try
first;
while not eof do
begin
Inc(I);
Next;
end;
finally
free;
end;
try
excel.Visible:=true;
WorkBook.Saved := True;
finally
excel.Quit;
excel:=Unassigned;
end;
在單元中加⼊comobj;
procedure TForm1.Button1Click(Sender: TObject);
var a,b : string;
ExcelApp,WorkBook:Variant;
ExcelRowCount:integer;
i:integer;
begin
ExcelApp:= CreateOleObject('Excel.Application');  //創建Excel程序
opendialog1.Execute;  //打開對話框
WorkBook := ExcelApp.WorkBooks.Open(opendialog1.FileName);
ExcelApp.Visible := false;
ExcelRowCount := WorkBook.WorkSheets[1].UsedRange.Rows.Count; //獲取Excel的⾏數
for i:=1to ExcelRowCount+1do
begin
a:=excelapp.Cells.Value;  //第⼀列的值
b:=excelapp.Cells.Value; //第⼆列的值
if (excelapp.Cells.Value='')and(excelapp.Cells.Value='') then //第⼀列與第⼆列值都為空則中⽌      break
else
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('insert into reny0830(a,b) values(:A,:B)');  //往表中插⼊Excel的內容
parameters.ParamByName('A').Value:=a;
parameters.ParamByName('B').Value:=b;
Execsql;
end;
end;
end;
WorkBook.Close;//关闭⼯作簿delphi app
ExcelApp.Quit; //退出Excel
ExcelApp:=Unassigned;//釋放變量
WorkBook:= Unassigned;
with adoquery1 do  //把結果顯⽰出來
begin
close;
sql.Clear;
sql.Add('select * from reny0830');
open;
end;
end;
procedure TmainFrm.Button4Click(Sender: TObject);
var  i, row, column:integer;
begin
if not mainAdo.Active then
begin
messagedlg('數據集沒有打開,不能轉Excel!',mtwarning,[mbOK],0);
end
else
begin
try  ExcelApplication1.Connect;
except
MessageDlg('Excel may not be installed',
mtError, [mbOk], 0);
Abort;
End;
mainAdo.First;
ExcelApplication1.Visible[0] := true;
ExcelApplication1.Caption := 'Excel';
ExcelApplication1.Workbooks.Add(Null, 0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);    row:=1;
for i:=0to mainAdo.FieldCount-1do
begin
ExcelWorksheet1.Cells.Item[1,i+1]:=mainAdo.Fields[i].DisplayName;
end;
row:=row+1;
while not mainAdo.Eof do
begin
column:=1;
for i:=1to mainAdo.FieldCount do
begin
ExcelWorksheet1.Cells.Item[row,column]:=mainAdo.Fields[i-1].AsString;
column:=column+1;
end;
mainAdo.Next;
row:=row+1;
end;
ExcelApplication1.Disconnect;
ExcelWorkbook1.Disconnect;
ExcelWorksheet1.Disconnect;
end;
end;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。