用C#编程MS Office - 可行吗?

5

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


1
我认为,有两个一般的方向。首先,编写一种插件来在Excel(或其他软件)内添加一些功能。这可以使用例如VSTO来完成,就像Patrick所说的那样。第二个方向是编写一个程序来操作Excel文件而不需要Excel本身。这可以使用NPOI或其他几个库来完成... - Dieter Meemken
NPOI是类似于Java API的东西,用于处理Microsoft文档(.net专用)。 - Fsalad
1
NPOI是一个库,它为您提供了直接从C#应用程序操作Excel或Word文件的类/方法。请访问https://npoi.codeplex.com/查看。 - Dieter Meemken
5个回答

5
是的,可以使用Visual Studio Tools for Office,它允许使用C#、VB.NET等编写插件。它使用COM互操作与Office通信。
此外,现在还有Office应用程序,它们是JavaScript和可能是服务器端点之间的混合体,也可以使用C#编码。

5
当然可以。您可以免费安装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

5
提及Excel-DNA是必不可少的。这是一款非常出色的产品,由才华横溢、乐于助人的开发者编写,并得到了良好的社区支持。它是免费提供的,可以轻松制作Excel自定义函数、RTD服务器和其他有用的工具。

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

编写自定义函数就像编写静态方法一样简单,只需要在提供的XLL文件中包含编译好的DLL或.CS文件即可。

3
另一个很好的选择(也是我推荐的)是使用Add-in Express。 https://www.add-in-express.com 他们的工具集大大扩展了VSTO或COM插件的功能。他们的支持非常出色,其网站为几乎所有Office开发场景提供了示例。

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接