我的程序是这样调用excel的excelapplication1.Connect;
excelapplication1.Visible[0]:=true;
excelapplication1.Workbooks.Add(EMPTYPARAM,0);
excelworkbook1.ConnectTo(workbooks[workbooks.count] as _workbook);
excelworksheet1.ConnectTo(excelworkbook1.Sheets[1] as _worksheet);我是把dbgrid的数据导出到excel中,并对excel进行编辑和打印,现在的问题是我打开excel后,没问题,但点击excel右上角的X关闭excel后,再一次点击按钮完成我的打印操作,excel就不会显示了,察看进程中,发现excel进程还在。我的目的是每一次打开我的打印按钮都能进行打印,并且我的主程序还在运行,也就是主程序还在运行的情况下,如何关闭excel。还有一个问题就是我想在excel一个workbook中添加6个sheet,系统默认3个,语法是
excelworkbook1.Worksheets.Add()吗?那()里的参数怎么设定呢?请大家多多帮忙!

解决方案 »

  1.   

    退出 Excel:
    excelapplication1.Quit;
    excelapplication1.Disconnect;
      

  2.   

    ExcelApplication1.Workbooks.Add(EmptyParam,0)
      

  3.   

    添加新工作簿:
    ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0)); //OK
    添加新工作表
    var Temp_Worksheet: _WorkSheet; 
    begin
    Temp_Worksheet:=ExcelWorkbook1.
    WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet;
    ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);
    End;
     
    打开已存在的工作簿
    ExcelApplication1.Workbooks.Open (c:\a.xls
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,
        EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)设置第2个工作表为活动工作表
    ExcelApplication1.WorkSheets[2].Activate;  或
    ExcelApplication1.WorksSheets[ 'Sheet2' ].Activate;
      

  4.   

    大家可能还没明白我的意思,程序点击打印按钮时,打开excel界面,并对其进行编辑和打印,完了用excel中的X关闭excel窗口,此时我的其他程序还在运行,我不退出程序,当我再调用这个打印按钮时,excel就不会显示了,进程中还存在excel。怎么解决这个问题呢?
      

  5.   

    aloking(黑鲸),感谢,我知道怎么添加sheet了。