自动化应用程序退出时,如何避免Excel显示“保存”对话框

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

它在Excel 2003和2007上已经运行了很多年。

最近有些用户使用Excel 2010.在这些用户上,当我的应用程序退出时,Excel显示一个对话框,要求用户保存未修改的工作表。 该消息说了一些有关公式的版本将被保存在一个新的2010年格式。 对不起,我没有确切的词汇,因为它不是英文办公软件包。

我的应用程序如何防止Excel 2010显示这个恼人的和无用的框?

大多数用户使用Excel 2007,所以我的应用程序需要处理的大部分文件(无论运行我的应用程序的用户的实际Excel版本)是否都是这种格式,并且将来会这样,因此将所有文件不是一个选项。

这是通过自动化打印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; 

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