С#:Как открыть и закрыть книгу Excel?
-
20-09-2019 - |
Вопрос
Кто-нибудь знает, как просто открыть и закрыть книгу Excel?
Мне не нужно читать какие-либо данные из файла, мне просто нужно его открыть и закрыть.(*)
Я предполагаю, что мне понадобится ссылка на сборку Microsoft.Office.Interop.Excel.
*Причина:Я уже настроил информацию сводной таблицы с помощью сторонней библиотеки (Aspose).Теперь мне нужно прочитать сгенерированную сводную таблицу.
К сожалению, библиотека Aspose не может генерировать сводную таблицу во время выполнения.Это нужно, чтобы кто-то открыть файл с помощью Excel чтобы Excel мог генерировать значения сводной таблицы.
Решение
после ссылки на Microsoft.Office.Interop.Excel также обязательно выполните очистку в конце.
using Excel = Microsoft.Office.Interop.Excel;
Excel.ApplicationClass _Excel;
Excel.Workbook WB;
Excel.Worksheet WS;
try
{
_Excel = new Microsoft.Office.Interop.Excel.ApplicationClass();
WB = _Excel.Workbooks.Open("FILENAME",
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
//do something
}
catch (Exception ex)
{
WB.Close(false, Type.Missing, Type.Missing);
throw;
}
finally
{
GC.Collect();
GC.WaitForPendingFinalizers();
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(WB);
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(_Excel);
}
Другие советы
Быстрый Google дает мне это в проекте кода:
Рассмотрите возможность использования System.Diagnostics.Process для запуска, мониторинга и закрытия Excel.Этот сайт дает хорошее введение: http://www.thescarms.com/dotnet/Process.aspx, включая работу с невидимым окном и отправку в него входных данных.