Функция сохранения взаимодействия Excel () зависает с огромными данными электронной таблицы

#c# #excel #excel-interop

#c# #excel #excel-interop

Вопрос:

Я пытаюсь использовать SaveAs () для сохранения данных электронной таблицы Excel (с 8 листами, некоторые листы с 15000 строками), но SaveAs () никогда не возвращается. Если я удалю некоторые листы, это приведет к успешному сохранению файла на жестком диске. Есть ли какой-либо способ сохранить всю огромную электронную таблицу без зависания?

Большое спасибо.

 ///////// my c# code to save Excel data:
xlWorkBook.SaveAs(outFileName,
                  Excel.XlFileFormat.xlWorkbookNormal,
                  Type.Missing,
                  Type.Missing,
                  false,
                  false,
                  Excel.XlSaveAsAccessMode.xlExclusive,
                  false,
                  false,
                  Type.Missing,
                  Type.Missing,
                  Type.Missing);

xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
  

Ответ №1:

Вы пробовали запускать ее с xlApp.Visible = True , чтобы посмотреть, не выдает ли Excel какие-либо странные ошибки? Вы также можете попробовать xlApp.DisplayAlerts = false остановить любые предупреждения / ошибки, которые могут появляться за запущенным приложением (мы сталкивались с обеими этими проблемами раньше)

Комментарии:

1. Она работает с xlApplication. Видимый = true. Большое спасибо.

2. @CHI KUO TANG ах, это, конечно, то, что я имел в виду. Я отредактирую свой ответ, чтобы уточнить. Я рад, что вы смогли заставить это работать.