用C#编写MS Office – 有可能吗?

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

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

另外,现在你已经有了Office应用程序 ,这些应用程序是JavaScript和可能的服务器端点之间的混合体,也可以用C#编码。

当然。 您可以免费安装Visual Studio Community 2015 。 然后看看这个文件夹(path可能会有所不同):

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

从这里你可以find每个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. 高强

另一个不错的select(我推荐的选项)是使用Add-in Express。 https://www.add-in-express.com

他们的工具集极大地扩展了VSTO或COM加载项的可能性。 他们的支持非常好,他们的网站几乎可以find任何Office开发场景的例子。

不提Excel-DNA是不公平的。 一个有才华,非常有帮助的家伙写的一个惊人的产品和良好的社区支持。 它是免费提供的,使得Excel自定义function,RTD服务器和其他好东西非常容易。

Excel-DNA是一个将.NET集成到Excel的独立项目。 使用Excel-DNA,您可以使用C#,Visual Basic.NET或F#为Excel创build原生(.xll)加载项,提供高性能的用户定义函数(UDF),自定义function区接口等等。 您的整个加载项可以打包成一个.xll文件,不需要安装或注册。

编写一个自定义函数就像编写一个静态方法一样简单,包括编译后的DLL或者.cs文件和提供的XLL文件。

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