4

我有一个用 Delphi 编写的 excel 自动化应用程序,它可以访问给定的 excel 工作簿并提取应用一些内部逻辑不同的工作表数据。

它在 Excel 2003 和 2007 上运行良好多年。

最近一些用户有 Excel 2010。在这些用户上,当我的应用程序退出时,Excel 会显示一个对话框,要求用户保存未修改的工作表。该消息说明了要以新的 2010 格式保存的公式版本。抱歉,我没有确切的词,因为它不是英语办公包。

我的应用程序如何防止 excel 2010 显示这个烦人且无用的框?

大多数用户都有 Excel 2007,所以我的应用程序需要处理的大多数文件,无论运行我的应用程序的用户的实际 Excel 版本是什么,都是这种格式,并且将来也会如此,所以迁移所有文件不是一种选择。

4

1 回答 1

12

这是通过自动化打印 Excel 工作表的例程。在遇到不时弹出excel保存对话框的问题后,此例程解决了所有麻烦:

procedure PrintExcelReport( Const filename : String;
                                  sheet    : Integer);
{- Sheet is counted from 1 and upwards !! }
Var 
  App : OleVariant;
begin
  App:= CreateOleObject('Excel.Application');
  Try
    App.Visible:= 0;
    App.WorkBooks.Open(ExpandUNCFileName(filename),1);  // Open read only
    Try
      App.ActiveWorkBook.WorkSheets[sheet].Select;
      App.ActiveWorkBook.ActiveSheet.PrintOut; // Prints active sheet
    Finally
      App.ActiveWorkBook.Saved:= 1;
      App.DisplayAlerts:= 0;
      App.ActiveWorkBook.Close(SaveChanges:= 0);
    End;
  Finally
    App.Quit;
    App:= UnAssigned;
  End;
end;

调整它以适合您的应用程序。

于 2012-10-23T19:42:14.953 回答