Как правильно использовать Interop в обычном, не офисном приложении? - PullRequest
0 голосов
/ 04 июня 2018

Следующим долгое время была моя стратегия развития.Я делю приложения Excel на два больших класса:

(а) Excel не обязательно должен присутствовать: приложение может даже работать в ОС, такой как Linux и т. Д. Я использую третий.Партийные библиотеки Excel.В Windows я использую преимущества таких ресурсов, как OpenXML или даже лучше: ClosedXML.

(b) Офисные приложения, такие как AddIns: Interop.

Однако для довольно сложной рабочей таблицы, которая обрабатываетсяпо нескольким приложениям я решил, что лучше всего позволить самому Excel делать всю работу.У меня есть типичные надстройки, но я нахожусь в процессе портирования обычного приложения, которое использует ClosedXML для взаимодействия.Как вы можете видеть в следующем посте, у некоторых коллег возникли проблемы при прохождении этого маршрута.Отсутствующий класс Globals, по-видимому, представляет серьезное препятствие.

https://social.msdn.microsoft.com/Forums/en-US/cf4b0ca8-9c3b-41df-a24a-b2c195eaee4e/cannot-access-globals-object-from-c-console-application?forum=exceldev

Как правильно использовать Interop в обычном (не AddIn, не Office) приложении?

ТИА

1 Ответ

0 голосов
/ 04 июня 2018

Вот ответ:

using Microsoft.Office.Interop.Excel;

public class InteropExcel
{
  private Application excelApp;
  private Workbook    workbook;
  private Worksheet   worksheet;

  internal void createExcelFile(string targetFilepath)
  {
        excelApp         = new Application();
        excelApp.Visible = false;

        workbook         = excelApp.Workbooks.Add();
        worksheet        = excelApp.ActiveSheet;

        workbook.SaveAs(targetFilepath);
        excelApp.Quit();
  }
}
...