Как я могу избежать диалогового окна «Сохранить Excel» при выходе приложения автоматизации

У меня есть приложение автоматизации Excel, написанное в Delphi, которое обращается к данной книге 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; 

Адаптируйте его в соответствии с вашим приложением.

  • Excel COUNTIF со ссылкой на другую книгу
  • VBA для импорта таблицы Excel в Access по очереди
  • EXCEL - Как найти ячейку с определенным контентом, а затем указать, что CELL (а не его содержимое) в другой формуле? (пример внутри)
  • Разделение одного столбца Excel на два отдельных столбца, разделение значений?
  • Программно форматировать ячейку как флажок
  • Стандартное отклонение IF Excel {} Вопросы по формуле
  • Условный формат даты, где 3 рабочих дня больше, чем значение ячейки
  • Excel - Формула с использованием правил приоритета в зависимости от входных значений диапазона
  • Сортировка столбцов в строки (со случайной длиной) по ключевым столбцам
  • Создание всех сводных таблиц на одном листе имитирует друг друга в терминах строк, расширяющихся и сжимающихся
  • Условное форматирование из другой ячейки
  • Interesting Posts

    Экспорт из SSRS в Excel без заголовков

    Сохранение уникальных строк в 2D-массиве со сравнением значений

    Не могу найти более быстрый способ чтения файла Excel с несколькими листами с помощью офисного взаимодействия (я знаю много вопросов)

    VBA Programmatically Break на всех ошибках

    Две оси в одной диаграмме excel

    Удалите временный файл с помощью c #, не работающего

    Вычислите среднее значение столбцов, затем удалите столбцы с помощью таблицы Google

    формула для сравнения столбцов с допуском в Excel

    VBA Sendmail через Outlook с использованием ссылок на ячейки

    Ожидаемый конец заявления в формуле с кавычками

    Ячейка Excel COUNTIFS равна диапазону ячеек И ячейка от диапазона равна другому диапазону

    Как проверить, редактируется ли ячейка документа Excel

    Как я могу заполнить список на листе 1 значениями sheet2 в Excel?

    Условный формат всего столбца на основе значения в первой ячейке?

    Строки строк, где в другом столбце содержится определенная фраза

    Давайте будем гением компьютера.