【问题标题】:Programming MS office with C# - is it possible?用 C# 对 MS office 进行编程 - 有可能吗?
【发布时间】:2016-03-23 08:05:11
【问题描述】:

可以使用 Visual Basic for Applications 对 Excel 等 MS Office 应用程序进行编程。是否可以使用 C# 对 MS Office 进行编程以执行高级任务?

【问题讨论】:

  • 我认为,有两个大方向。首先,编写一种插件以在 Excel(或其他)中添加一些功能。这可以通过例如来完成VSTO,就像帕特里克所说的那样。第二个是一个在没有 excel 本身的情况下操作 excel 文件的程序。这可以通过 NPOI 或其他几个库之一来完成......
  • NPOI 是否类似于用于 Microsoft 文档的 java API(用于 .net)?
  • NPOI 是一个库,它为您提供类/方法来直接从 c# 应用程序操作 excel 或 word 文件。看看npoi.codeplex.com

标签: c# excel ms-access ms-office


【解决方案1】:

是的,是的。您可以使用Visual Studio Tools for Office,它允许使用 C#、VB.NET 等编写加载项。它使用 COM 互操作与 Office 进行通信。

另外,现在你有 Office apps,它是 JavaScript 和可能的服务器端点的混合体,也可以用 C# 编码。

【讨论】:

    【解决方案2】:

    当然。您可以免费安装Visual Studio Community 2015。然后查看这个文件夹(路径可能不同):

    C:\Program Files (x86)\Microsoft Visual Studio 12.0\Visual Studio Tools for Office\PIA\Office15

    从这里您可以找到每个 Office 应用程序的 dll。

    Microsoft.Office.Interop.Excel.dll为例,新建一个C#项目,将该dll添加到项目引用中。

    using Excel = Microsoft.Office.Interop.Excel;
    

    然后你可以像这样初始化你的excel应用:

    Excel.Application xlApp = new Excel.Application();
    Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@"C:\path\file.xlsx");
    Excel.Worksheet xlWorksheet = xlWorkbook.Sheets[1];
    

    在线上有大量此类教程。 DoNotPerls 是从基础开始的好地方:

    1. Excel
    2. Word

    【讨论】:

      【解决方案3】:

      不提Excel-DNA 是不公平的。由一位才华横溢且非常乐于助人的小伙子编写的令人惊叹的产品,并得到了良好的社区支持。它是免费的,可以很容易地制作 Excel 自定义函数、RTD 服务器和其他好东西。

      Excel-DNA 是一个将 .NET 集成到 Excel 中的独立项目。借助 Excel-DNA,您可以使用 C#、Visual Basic.NET 或 F# 为 Excel 制作本机 (.xll) 插件,提供高性能的用户定义函数 (UDF)、自定义功能区界面等。您的整个加载项可以打包到一个 .xll 文件中,无需安装或注册。

      编写自定义函数就像编写静态方法并在提供的 XLL 文件中包含已编译的 DLL 或 .cs 文件一样简单。

      【讨论】:

        【解决方案4】:

        另一个很好的选择(也是我推荐的)是使用 Add-in Express。 https://www.add-in-express.com

        他们的工具集极大地扩展了 VSTO 或 COM 插件的功能。他们的支持非常棒,他们的网站提供了几乎所有 Office 开发方案的示例。

        【讨论】:

          【解决方案5】:

          对于 Excel,您可以使用我的 ESharper 加载项在实时 Excel 会话中使用 C# 以交互方式编写轻量级用户定义函数和命令,而无需额外的加载项部署开销。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2010-09-19
            • 1970-01-01
            • 1970-01-01
            • 2013-08-27
            • 1970-01-01
            • 2011-12-31
            • 1970-01-01
            相关资源
            最近更新 更多