begin
adoquery1.Open; //连接数据库,这里只演示SQL我先写进去了
ea1 := texcelapplication.Create(self); //excelapplication1
ew1 := texcelworkbook.Create(self); //excelworkbook1
ews1 := texcelworksheet.Create(self); //excelworksheet1
ea1.Connect;
ea1.Workbooks.Add(null,0);
ew1.ConnectTo(ea1.Workbooks[1]);
ews1.ConnectTo(ew1.Sheets[1]as _worksheet);
if adoquery1.RecordCount > 0 then
begin
i:= 0;
while not adoquery1.Eof
do
begin
for j:=0 to adoquery1.FieldCount-1
do
begin
ews1.Cells.Item[i+1,j+1]:= adoquery1.Fields[j].AsString;
end;
i:= i+1;
adoquery1.Next;
end;
end;
ew1.SaveCopyAs('e:\temp.xls');//保存EXCEL这里你也可以自己写更多
//最后注意这里要把excelapplication,excelworkbook,excelworksheet
//关闭掉,怎么关?这个自己摸摸吧。不写的话要看到EXCEL表最好把机器注销一下
//这里只是一个示例你还可以在里面加入写表头的代码等其他功能。
MyExcel:=createoleobject('Excel.Application');
MyWorkbook:=MyExcel.Workbooks.Open(datamodule2.OpenDialog1.FileName);
MyExcel.Visible:=false;
myworksheet1:=myexcel.activesheet;
for bom_cell:=1 to myworksheet1.usedrange.columns.Count do
begin
if varastype(myworksheet1.cells.item[1,bom_cell],varstring)='类别' then
fuxiang_field:=bom_cell;
if varastype(myworksheet1.cells.item[1,bom_cell],varstring)='产品编码' then
type_field:=bom_cell;
if varastype(myworksheet1.cells.item[1,bom_cell],varstring)='型号' then
name_field:=bom_cell;
if varastype(myworksheet1.cells.item[1,bom_cell],varstring)='出口国家' then
guige_field:=bom_cell;
if varastype(myworksheet1.cells.item[1,bom_cell],varstring)='周计划' then //材料
cailiao_field:=bom_cell;
if varastype(myworksheet1.cells.item[1,bom_cell],varstring)='上次欠产' then
danwei_field:=bom_cell;
if varastype(myworksheet1.cells.item[1,bom_cell],varstring)='单位' then
danhao_field:=bom_cell;
if varastype(myworksheet1.cells.item[1,bom_cell],varstring)='当日' then
gongxu_field:=bom_cell;
if varastype(myworksheet1.cells.item[1,bom_cell],varstring)='累计' then
plat_field:=bom_cell;
if varastype(myworksheet1.cells.item[1,bom_cell],varstring)='备注' then
danhao_field:=bom_cell;
if varastype(myworksheet1.cells.item[1,bom_cell],varstring)='欠产' then
gongxu_field:=bom_cell;
if varastype(myworksheet1.cells.item[1,bom_cell],varstring)='分厂名称' then
plat_field:=bom_cell;
if varastype(myworksheet1.cells.item[1,bom_cell],varstring)='数据日期' then
plat_field:=bom_cell;
end;
//执行存储过程
dm.adoq1.Close;
dm.adoq1.SQL.Clear;
dm.adoq1.SQL.add('');
dm.adoq1.ExecSQL;
try For bom_cell:=2 To myworksheet1.usedrange.Rows.Count do
begin
dm.ADOQ1.Close;
dm.ADOQ1.SQL.Clear;