begin try excelapplication1.Connect; except messagedlg('请检查是否正确安装了EXCEL2000?',mterror,[mbok],0); abort; end; if fileexists(extractfiledir(application.ExeName)+'\table\年终企业缴费统计表临时文件.xls') then deletefile(extractfiledir(application.ExeName)+'\table\年终企业缴费统计表临时文件.xls'); copyfile(pchar(extractfiledir(application.ExeName)+'\table\年终企业缴费统计表.xls'),pchar(extractfiledir(application.ExeName)+'\table\年终企业缴费统计表临时文件.xls'),true); begin excelapplication1.Visible[0]:=false; excelapplication1.DisplayAlerts[0]:=false; excelapplication1.Caption:='年终企业缴费统计表'; excelapplication1.Workbooks.Add(extractfiledir(application.ExeName)+'\table\年终企业缴费统计表临时文件.xls',0); excelworkbook1.ConnectTo(excelapplication1.Workbooks[1]); excelworksheet1.ConnectTo(excelworkbook1.Worksheets[1] as _worksheet); row:=3; while not(adoquery1.Eof) do begin column:=1; for i:=1 to adoquery1.FieldCount do begin excelworksheet1.Cells.Item[row,column]:=trim(adoquery1.Fields[i-1].AsString); column:=column+1; end; adoquery1.Next; row:=row+1; if (row mod 21)=0 then begin row:=3; end; excelworksheet1.Cells.Item[24,3]:=('共有记录'+ edit2.Text+'条'); end; statusbar1.SimpleText:='正在打印年终企业缴费统计表,请稍侯.....!'; excelworksheet1.PrintOut; statusbar1.SimpleText:='打印任务完成!'; excelapplication1.Quit; if fileexists(extractfiledir(application.ExeName)+'\table\年终企业缴费统计表临时文件.xls') then deletefile(extractfiledir(application.ExeName)+'\table\年终企业缴费统计表临时文件.xls'); excelapplication1.Disconnect; end; end; end; 如果不懂,再问我。
///////////////////////////////////
// //
// [email protected] //
// //
///////////////////////////////////
[email protected]
try
excelapplication1.Connect;
except
messagedlg('请检查是否正确安装了EXCEL2000?',mterror,[mbok],0);
abort;
end;
if fileexists(extractfiledir(application.ExeName)+'\table\年终企业缴费统计表临时文件.xls') then
deletefile(extractfiledir(application.ExeName)+'\table\年终企业缴费统计表临时文件.xls');
copyfile(pchar(extractfiledir(application.ExeName)+'\table\年终企业缴费统计表.xls'),pchar(extractfiledir(application.ExeName)+'\table\年终企业缴费统计表临时文件.xls'),true); begin
excelapplication1.Visible[0]:=false;
excelapplication1.DisplayAlerts[0]:=false;
excelapplication1.Caption:='年终企业缴费统计表';
excelapplication1.Workbooks.Add(extractfiledir(application.ExeName)+'\table\年终企业缴费统计表临时文件.xls',0);
excelworkbook1.ConnectTo(excelapplication1.Workbooks[1]);
excelworksheet1.ConnectTo(excelworkbook1.Worksheets[1] as _worksheet);
row:=3;
while not(adoquery1.Eof) do
begin
column:=1;
for i:=1 to adoquery1.FieldCount do
begin
excelworksheet1.Cells.Item[row,column]:=trim(adoquery1.Fields[i-1].AsString);
column:=column+1;
end;
adoquery1.Next;
row:=row+1;
if (row mod 21)=0 then
begin
row:=3;
end;
excelworksheet1.Cells.Item[24,3]:=('共有记录'+ edit2.Text+'条');
end;
statusbar1.SimpleText:='正在打印年终企业缴费统计表,请稍侯.....!';
excelworksheet1.PrintOut;
statusbar1.SimpleText:='打印任务完成!';
excelapplication1.Quit;
if fileexists(extractfiledir(application.ExeName)+'\table\年终企业缴费统计表临时文件.xls') then
deletefile(extractfiledir(application.ExeName)+'\table\年终企业缴费统计表临时文件.xls');
excelapplication1.Disconnect;
end;
end;
end;
如果不懂,再问我。
execapplication,....三个控件?如果有,还要看看你引用的是97还是2000
用DELPHI6可能问题少一些。
var ExcelID: Variant;ExcelID := CreateOleObject( 'Excel.Application' );1) 显示当前窗口:
ExcelID.Visible := True;2) 更改 Excel 标题栏:
ExcelID.Caption := '应用程序调用 Microsoft Excel';3) 添加新工作簿:
ExcelID.WorkBooks.Add;4) 打开已存在的工作簿:
ExcelID.WorkBooks.Open( 'C:\Excel\Demo.xls' );5) 设置第2个工作表为活动工作表:
ExcelID.WorkSheets[2].Activate;
或
ExcelID.WorksSheets[ 'Sheet2' ].Activate;6) 给单元格赋值:
ExcelID.Cells[1,4].Value := '第一行第四列';7) 设置指定列的宽度(单位:字符个数),以第一列为例:
ExcelID.ActiveSheet.Columns[1].ColumnsWidth := 5;8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
ExcelID.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米9) 在第8行之前插入分页符:
ExcelID.WorkSheets[1].Rows[8].PageBreak := 1;10) 在第8列之前删除分页符:
ExcelID.ActiveSheet.Columns[4].PageBreak := 0;11) 指定边框线宽度:
ExcelID.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;1-左 2-右 3-顶 4-底 5-斜( \ ) 6-斜( / )12) 清除第一行第四列单元格公式:
ExcelID.ActiveSheet.Cells[1,4].ClearContents;13) 设置第一行字体属性:
ExcelID.ActiveSheet.Rows[1].Font.Name := '隶书';
ExcelID.ActiveSheet.Rows[1].Font.Color := clBlue;
ExcelID.ActiveSheet.Rows[1].Font.Bold := True;
ExcelID.ActiveSheet.Rows[1].Font.UnderLine := True;14) 进行页面设置:a.页眉:
ExcelID.ActiveSheet.PageSetup.CenterHeader := '报表演示';
b.页脚:
ExcelID.ActiveSheet.PageSetup.CenterFooter := '第&P页';
c.页眉到顶端边距2cm:
ExcelID.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;
d.页脚到底端边距3cm:
ExcelID.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;
e.顶边距2cm:
ExcelID.ActiveSheet.PageSetup.TopMargin := 2/0.035;
f.底边距2cm:
ExcelID.ActiveSheet.PageSetup.BottomMargin := 2/0.035;
g.左边距2cm:
ExcelID.ActiveSheet.PageSetup.LeftMargin := 2/0.035;
h.右边距2cm:
ExcelID.ActiveSheet.PageSetup.RightMargin := 2/0.035;
i.页面水平居中:
ExcelID.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;
j.页面垂直居中:
ExcelID.ActiveSheet.PageSetup.CenterVertically := 2/0.035;
k.打印单元格网线:
ExcelID.ActiveSheet.PageSetup.PrintGridLines := True;15) 拷贝操作:a.拷贝整个工作表:
ExcelID.ActiveSheet.Used.Range.Copy;
b.拷贝指定区域:
ExcelID.ActiveSheet.Range[ 'A1:E2' ].Copy;
c.从A1位置开始粘贴:
ExcelID.ActiveSheet.Range.[ 'A1' ].PasteSpecial;
d.从文件尾部开始粘贴:
ExcelID.ActiveSheet.Range.PasteSpecial;16) 插入一行或一列:a. ExcelID.ActiveSheet.Rows[2].Insert;
b. ExcelID.ActiveSheet.Columns[1].Insert;
17) 删除一行或一列:a. ExcelID.ActiveSheet.Rows[2].Delete;
b. ExcelID.ActiveSheet.Columns[1].Delete;18) 打印预览工作表:
ExcelID.ActiveSheet.PrintPreview;19) 打印输出工作表:
ExcelID.ActiveSheet.PrintOut;20) 工作表保存:
if not ExcelID.ActiveWorkBook.Saved then
ExcelID.ActiveSheet.PrintPreview;21) 工作表另存为:
ExcelID.SaveAs( 'C:\Excel\Demo1.xls' );22) 放弃存盘:
ExcelID.ActiveWorkBook.Saved := True;23) 关闭工作簿:
ExcelID.WorkBooks.Close;24) 退出 Excel:
ExcelID.Quit;