小弟有一个excel模板,想把数据库中的数据写到模板里再打印出来,但是我的代码总是自己在打开的模板里新增一个sheet,在把数据写到新的sheet中(那样我要模板有什么用),请问怎么解决啊??
var
  ExcelApplication1: TExcelApplication;
  ExcelWorksheet1: TExcelWorksheet;
  ExcelWorkbook1: TExcelWorkbook;
begin
  ExcelApplication1 := TExcelApplication.Create(Application);
  ExcelWorksheet1 := TExcelWorksheet.Create(Application);
  ExcelWorkbook1 := TExcelWorkbook.Create(Application);
  ExcelApplication1.Connect;
  excelapplication1.Visible[0]:=true;
  ExcelApplication1.Workbooks.Add('C:\许可证数据库\正本结构.xls', 0);
  ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
  ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _worksheet);
  
  excelsheet.Cells.Item[2,7]:=trim(bhy.Text);//写数据
 
  excelsheet.PrintOut;
================================
  //顺便问一下,最后怎么不保存退出啊??

解决方案 »

  1.   

    uses ComObj;var
      workbook,sheet,excelObj,excel : OleVariant;
    begin
      excelObj :=  CreateOleObject('excel.sheet');
      excel := excelObj.Application;  workbook := excel.workbooks.open( 'C:\许可证数据库\正本结构.xls' );//打开模板的位置
      sheet := workbook.sheets[1];
      Excel.ActiveWindow.WindowState := -4137;  excel.Cells[2,7]:=trim(bhy.Text);//写数据
      ………………
      //下面为保存退出
      Excel.ActiveWorkbook.SaveAs(filePath);//filepath为文件的路径
      workbook.close;
      Excel.Quit;//退出
    end;楼主用用这个吧,应该可行的