2012-05-02 342 views
16

如何在C#中讀寫Excel文件?我已經將Excel對象庫添加到了我的項目中,但是我沒有清楚地描述訪問這些文件需要做什麼。使用C#讀取/寫入Excel文件(.xls/.xlsx)

請幫助我理解,並在解釋時請記住我對此有點新,但我不是一個完整的新手。我學習了很多,所以我並不完全無知。

+2

[獲取Excel文件的基本示例](http://michaelmalloy.blogspot.pt/2008/04/c-read-excel-2007-xlsx-files.html) 這是一個起點。 –

回答

0

如果您正在進行簡單的操作並且可以將自己綁定到xlsx,那麼您可以考慮自己操縱XML。我已經完成了它,發現它比Grok的Excel庫更快。

還有第三方庫可以更容易使用......並且可以在MS不能使用的服務器上使用。

8

我使用NPOI來滿足我所有的Excel需求。

http://npoi.codeplex.com/

附帶了許多常用的Excel任務的示例的解決方案。

1

您可以使用Excel自動化(這基本上是一個COM庫的東西),例如:

Excel.Application xlApp ; 
Excel.Workbook xlWorkBook ; 
Excel.Worksheet xlWorkSheet ; 


xlApp = new Excel.ApplicationClass(); 
xlWorkBook = xlApp.Workbooks.Open("1.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); 
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); 

Link to the full tutorial

+1

但是你需要在服務器上安裝office dll。 EPPLus使用OOXML直接讀取和寫入文件,這非常好。 – ppumkin

14

我是一個大風扇使用EPPlus來執行這些類型的操作。 EPPlus是您可以在項目中引用的庫,並可輕鬆在服務器上創建/修改電子表格。我將它用於任何需要導出功能的項目。

Here's a nice blog entry that shows how to use the library,雖然庫本身應該附帶一些解釋如何使用它的示例。

在我看來,第三方庫比Microsoft COM對象更容易使用。我會建議嘗試一下。

+3

不要忘記條件: 「EPPlus是使用Open Office Xml格式(xlsx)讀取和寫入Excel 2007/2010文件的.net庫。」 因此.xls文件不起作用。 – Muflix