2016-03-23 38 views
2

MS Office應用程序如Excel可以使用Visual Basic for Applications進行編程。是否可以使用C#爲MS Office編寫高級任務?使用C#編程MS Office - 有可能嗎?

+1

我想,有兩個大方向。首先,編寫一種插件來在Excel(或其他)中添加一些功能。這可以通過例如像帕特里克說的VSTO。第二個是用excel本身操作excel文件的程序。這可以通過NPOI或其他幾個庫中的其中一個來完成...... –

+0

NPOI是類似於微軟文檔(用於.net)的java API的東西嗎? – Fsalad

+0

NPOI是一個庫,它爲您提供用於直接從c#應用程序操作excel或word文件的類/方法。看看https://npoi.codeplex.com/ –

回答

4

是的。您可以使用Visual Studio Tools for Office,它允許使用C#,VB.NET等編寫加載項。它使用COM interop與Office進行通信。

此外,您現在有Office apps,它們是JavaScript和可能的服務器端點之間的混合體,也可以用C#編碼。

2

當然。您可以免費安裝Visual Studio Community 2015。然後看看這個文件夾(路徑可能會有所不同):

C:\ Program Files文件(x86)的\微軟的Visual Studio 12.0 \ Visual Studio工具用於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
2

另一個偉大的選項(和一個我建議)是使用外接快遞。 https://www.add-in-express.com

他們的工具集極大地擴展了VSTO或COM加載項的可能性。他們的支持非常棒,他們的網站幾乎可以提供任何Office開發場景的示例。

3

這是不公正的,更不用說Excel-DNA。一個有才華,非常有幫助的傢伙寫的驚人的產品和良好的社區支持。它是免費提供的,並且使製作Excel自定義函數,RTD服務器和其他好東西非常容易。

Excel-DNA是一個將.NET集成到Excel的獨立項目。使用Excel-DNA,您可以使用C#,Visual Basic.NET或F#爲Excel創建原生(.xll)加載項,提供高性能的用戶定義函數(UDF),自定義功能區接口等。您的整個加載項可以打包成一個不需要安裝或註冊的.xll文件。

編寫自定義函數就像編寫一個靜態方法一樣簡單,並且包含編譯後的DLL或.cs文件和提供的XLL文件。

0

對於Excel,您可以使用我的ESharper加載項交互式地在活動Excel會話中使用C#編寫輕量級用戶定義的函數和命令,而無需額外的插件部署開銷。

相關問題