留个Email地址然后明天俄把源代码给你.

解决方案 »

  1.   

    我正需要这方面的东东,麻烦给我也来一份吧,谢谢
    ///////////////////////////////////
    //                               //
    //     [email protected]       //
    //                               //
    ///////////////////////////////////
      

  2.   

    我也正需要要, [email protected]
      

  3.   

    顺便给我发一份罢。谢谢。[email protected]
      

  4.   

    来得早不如来得巧,我终于找到我的需要了:
       [email protected]
      

  5.   

    我正为此而头痛呢!谢了给我也一份[email protected]
      

  6.   

    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;
    如果不懂,再问我。
      

  7.   

    我用这种方法,怎么关不掉打开的excel,第二次点击打开时,经常出错,为什么?
      

  8.   

    不会呀,我就用的这个,所有的打印都没错,连发票都能打印,你有没有加
    execapplication,....三个控件?如果有,还要看看你引用的是97还是2000
    用DELPHI6可能问题少一些。
      

  9.   

    转贴一篇文章,对你有用:首先创建 Excel 对象,使用ComObj:
    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;