要增加Workbooks才行: ExcelApplication.Workbooks.Add(null,0); ExcelApplication.Caption := edTitle.Text; ————————————————————————————————— MaximStr := '宠辱不惊,看庭前花开花落,去留无意; 毁誉由人,望天上云卷云舒,聚散任风。'; if Not Assigned(I) then I := TI.Create(Nil); I.Maxim := MaximStr; I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”等'; I.Desire := '加不加分随你'; —————————————————————————————————
你只运行了Excel,还没有打开文档啊。 可以象上面那样新增一个文档,或者open已有的文档
to lxpbuaa(桂枝香在故国晚秋) 我在程序中已经加了 excelobj := createoleobject('excel.sheet'); excel := excelobj.application; excel.visible := false; frmhint:=tfrmhint.create(application); frmhint.show; frmhint.Animate1.Active:=true; workbook := excel.workbooks.add; except messagebox(getactivewindow,'无法调用mircorsoft excel! '+chr(13)+chr(10)+ '请检查是否安装了mircorsoft excel。','提示',mb_ok+mb_iconinformation); exit; end; for j:=1 to 15 do workbook.Sheets.Add; with adoquery1 do //劳务公司1 begin close; sql.clear; sql.add('select * from tb_basedep'); open; while not eof do begin sheet:=workbook.sheets[i]; writexlshead(sheet); sheet.name:=fieldbyname('dname').value+'0'; sqlstr:='select rno,rname,gangwei,gongling,gangtie,wucan,baoxian,yiyao,yingfa,queqin,danbao,gebao,'; sqlstr:=sqlstr+'kouxian,koushui,shifa,re from tb_pay'+adotable1.fieldbyname('workyear').value; sqlstr:=sqlstr+' where left(kno,1)=0 and dno='''+fieldbyname('dno').value+''''+' and mon='''+adotable1.fieldbyname('workmon').value+''''; adoquery2.close; adoquery2.sql.clear; adoquery2.sql.add(sqlstr); adoquery2.open; writexls(sheet); inc(i); next; end; end; //关键在这里,可是我找不到错 workbook.saveas(filename); workbook.close; excel.quit; frmhint.close;
ExcelApplication.Workbooks.Add(null,0);
ExcelApplication.Caption := edTitle.Text;
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”等';
I.Desire := '加不加分随你';
—————————————————————————————————
可以象上面那样新增一个文档,或者open已有的文档
excelobj := createoleobject('excel.sheet');
excel := excelobj.application;
excel.visible := false;
frmhint:=tfrmhint.create(application);
frmhint.show;
frmhint.Animate1.Active:=true;
workbook := excel.workbooks.add;
except
messagebox(getactivewindow,'无法调用mircorsoft excel! '+chr(13)+chr(10)+
'请检查是否安装了mircorsoft excel。','提示',mb_ok+mb_iconinformation);
exit;
end;
for j:=1 to 15 do
workbook.Sheets.Add;
with adoquery1 do //劳务公司1
begin
close;
sql.clear;
sql.add('select * from tb_basedep');
open;
while not eof do
begin
sheet:=workbook.sheets[i];
writexlshead(sheet);
sheet.name:=fieldbyname('dname').value+'0';
sqlstr:='select rno,rname,gangwei,gongling,gangtie,wucan,baoxian,yiyao,yingfa,queqin,danbao,gebao,';
sqlstr:=sqlstr+'kouxian,koushui,shifa,re from tb_pay'+adotable1.fieldbyname('workyear').value;
sqlstr:=sqlstr+' where left(kno,1)=0 and dno='''+fieldbyname('dno').value+''''+' and mon='''+adotable1.fieldbyname('workmon').value+'''';
adoquery2.close;
adoquery2.sql.clear;
adoquery2.sql.add(sqlstr);
adoquery2.open;
writexls(sheet);
inc(i);
next;
end;
end;
//关键在这里,可是我找不到错
workbook.saveas(filename);
workbook.close;
excel.quit;
frmhint.close;
你可以试着将adoquery作为datasource1的数据源,在添加一个DBGRID,设置它的Ddatasource为datasource1,看是否有数据显示出来,看查询结果是否为空,
dbGridtoExcel
OK.my mail:[email protected]