delphi oracle表导出excel文件格式,DELPHI如何将数据导出到指定格式的EXCEL模版

参考代码1

Delphi(Pascal) codepath:=ExtractFilePath(Application.ExeName);ifself.OpenDialog1.Executethenfilename:=self.OpenDialog1.FileName;

try

Self.ExcelApplication1:=TExcelApplication.Create(self);

Self.ExcelApplication1.Connect;

except

messagebox(application.Handle,'无法生成Excel报表,请确定安装了Excel后重试','信息',mb_okormb_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;forj:=1toi-1dobeginxh:=Self.StringGrid2.Cells[0,j];

pscj:=self.StringGrid2.Cells[2,j];

kscj:=Self.StringGrid2.Cells[4,j];

zpcj:=Self.StringGrid2.Cells[5,j];

self.ExcelWorksheet1.cells.Item[l+j,m]:=pscj;

self.ExcelWorksheet1.cells.Item[l+j,n]:=kscj;

self.ExcelWorksheet1.cells.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

Sheet.cells(i, 1) := FieldbyName('Field1').asstring;

Sheet.cells(i, 2) := FieldbyName('Field2').asstring;

Sheet.cells(i, 3) := FieldbyName('Field3').asstring;

Inc(I);

Next;

end;

finally

free;

end;

try

excel.Visible:=true;

WorkBook.Saved := True;

finally

excel.Quit;

excel:=Unassigned;

end;

在單元中加入comobj;procedureTForm1.Button1Click(Sender: TObject);vara,b : string;

ExcelApp,WorkBook:Variant;

ExcelRowCount:integer;

i:integer;beginExcelApp:=CreateOleObject('Excel.Application');//創建Excel程序

opendialog1.Execute;//打開對話框

WorkBook :=ExcelApp.WorkBooks.Open(opendialog1.FileName);

ExcelApp.Visible :=false;

ExcelRowCount :=WorkBook.WorkSheets[1].UsedRange.Rows.Count;//獲取Excel的行數fori:=1toExcelRowCount+1dobegina:=excelapp.Cells.Value;//第一列的值

b:=excelapp.Cells.Value;//第二列的值if(excelapp.Cells.Value='')and(excelapp.Cells.Value='')then//第一列與第二列值都為空 則中止

breakelsebeginwithadoquery1dobeginclose;

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;//关闭工作簿

ExcelApp.Quit;//退出Excel

ExcelApp:=Unassigned;//釋放變量

WorkBook:=Unassigned;withadoquery1do//把結果顯示出來beginclose;

sql.Clear;

sql.Add('select * from reny0830');

open;end;end;

procedureTmainFrm.Button4Click(Sender: TObject);vari, row, column:integer;beginifnotmainAdo.Activethenbeginmessagedlg('數據集沒有打開,不能轉Excel!',mtwarning,[mbOK],0);endelsebegintry 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;fori:=0tomainAdo.FieldCount-1dobeginExcelWorksheet1.Cells.Item[1,i+1]:=mainAdo.Fields[i].DisplayName;end;

row:=row+1;whilenotmainAdo.Eofdobegincolumn:=1;fori:=1tomainAdo.FieldCountdobeginExcelWorksheet1.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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值