2012-01-30 163 views
1

我需要從DataGridView(在我的WinForms應用程序中)將數據導出到excel文件。我搜索了一些關於這個主題的教程,但是我很難得到任何可用的解決方案。將DataGridView數據導出到Excel文件中C#

我開始於this tutorial。但是,當我嘗試出口的datagridview到excel文件我得到未處理收到COMException在:

Microsoft.Office.Interop.Excel.ApplicationClass ExcelApp = new 
Microsoft.Office.Interop.Excel.ApplicationClass(); 

我也試過this tutorial,但具有相同的結果。

我發現和閱讀的另一篇文章是this one。無法使代碼正常工作,可能是因爲Add Reference對話框的COM tab中找不到Microsoft Excel 12.0 object library

我正在使用Visual Studio 2010 Ultimate。

+0

是否當您嘗試實例化ApplicationClass,或在以後的某個點未處理收到COMException發生?如果稍後,您可以添加所有的代碼嗎? – eouw0o83hf 2012-01-30 18:45:43

+0

我相信它發生在我嘗試實例化ApplicationClass時。我使用的代碼是[這裏](http://www.gridview.net/export-datagridview-to-excel-in-c/)。 – beam022 2012-01-30 18:56:47

+0

它是否必須是一個excel文件,.csv會好嗎? – 2012-01-30 19:05:41

回答

2

如果未安裝這些庫,你可以從微軟下載它們:

對於特定的Office版本,在這裏看到:

Office 2003 Update: Redistributable Primary Interop Assemblies

2007 Microsoft Office System Update: Redistributable Primary Interop Assemblies

Microsoft Office 2010: Primary Interop Assemblies Redistributable

一旦你安裝正確的,你應該能夠找到libr

+0

我看過你的答案中的鏈接。但是如果我沒有安裝Microsoft Office,我不能使用這些文件中的任何一個。也許這是一個愚蠢的問題,但我沒有意識到這一點。這是絕對必要的嗎?我可以在[本教程]後面添加一個對「Microsoft.Office.Interop」的引用,來自.NET組件的項目(http://www.gridview.net/export-datagridview-to-excel-in -c /),所以我仍然不知道這個解決方案有什麼問題。 – beam022 2012-01-30 19:37:36

+3

@ beam022 - 多數民衆贊成在正確的,你需要安裝Excel才能這個工作。 – SwDevMan81 2012-01-30 20:14:59

+0

安裝Office解決了這個問題。 – beam022 2012-01-31 21:21:13

1

有一天我沒你需要的教程中的「添加參考」一節中元,但我得到了它在VB.Net

所以,你只需要創建一個類庫項目,並在該類 使用我的方法,所以你可以通過C#引用它。

看看這個鏈接(它翻譯成英文): http://foro.elhacker.net/net/aporte_exportar_datagridview_a_excel_pdf_y_html-t299075.0.html

,你也可以從這裏下載我的例子並重新使用我的方法: http://dl.dropbox.com/u/15208254/stackoverflow/ExportarData.rar

問候。

1

您可以使用Excel Package Plus和導出數據,而不需要Excel或任何其他外部扶養