在常规的非Office应用程序中使用Interop的正确方法是什么?

时间:2018-06-03 22:56:54

标签: excel ms-office vsto office-interop

以下是我长期以来的发展战略。我将Excel应用程序划分为两个大类:

(a)Excel不必存在:应用程序甚至可以在Linux等操作系统中运行。我使用3rd。派对Excel库。在Windows中,我利用OpenXML等资源甚至更好:ClosedXML。

(b)办公室应用程序,例如AddIns:Interop。

但是,对于由多个应用程序处理的相当复杂的工作表,我决定最好允许Excel自己完成所有工作。我有典型的AddIns,但我正在移植使用ClosedXML到Interop的常规应用程序。正如您在下面的帖子中看到的那样,一些同事在走这条路线时遇到了麻烦。缺少的全球类Globals似乎是一个严重的障碍。

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

在常规(非AddIn,非Office)应用程序中使用Interop的正确方法是什么?

TIA

1 个答案:

答案 0 :(得分:0)

以下是答案:

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();
  }
}