2010-11-09 174 views
2

我有一個winforms應用程序,我想從datagridview導出數據到excel。我將如何做到這一點?謝謝你的任何幫助c#從datagridview導出數據到excel

我想要最簡單的方法。

也許導出爲CSV更容易?

+0

請參閱文章 [此處輸入鏈路描述] [1] [1]:http://stackoverflow.com/questions/8667291/how-to-export-c-sharp-datagridview-into-excel/22145663#22145663 – 2014-03-03 11:36:15

回答

4

你有多種選擇

  1. 將數據寫入到一個逗號分隔值(CSV)文件
  2. 使用OLEDB寫入創建一個Excel文件,並寫入數據,將其
  3. 使用在OOXML SDK創建一個Excel文件
  4. 將數據寫入到一個XML文件,可以用Excel等編輯
  5. 使用NPOI庫創建並寫入Excel文件

這些是我的頭頂幾個選項。就我個人而言,我會與NPOI一起,我已經在基於服務器的解決方案中使用了它,並且它非常易於使用且速度非常快。但是它並不支持xlsx文件格式,只有標準的xls。 庫可以找到here

我也發現EPPlus,支持xlsx,但我不能擔保它,因爲我沒有親自使用它。

0

如果您搜索Google,有很多方法。這裏是一個:

http://www.c-sharpcorner.com/UploadFile/hrojasara/2904/

+0

只要用戶具有優秀的文章鏈接工作機。如果你正在尋找一些更通用的地方,它將它導出爲可以導入到excel中的格式,並且不需要安裝Excel,而不是使用ChrisF建議的XML輸出。 – pstrjds 2010-11-09 19:37:11

+0

如果您包含所需的Excel DLL,並在分發時將其包含在應用程序中,則Excel不需要安裝在用戶的計算機上。 – 2010-11-09 19:43:18

+0

您可以發佈PIA,但我不認爲它們在未安裝Office的情況下可以正常工作,並且實際閱讀Office PIA中的EULA,肯定聽起來您不允許在未安裝Office的情況下安裝它們。 – pstrjds 2010-11-09 20:09:41

2

最簡單的方法是將數據寫入到一個XML文件,然後導入到Excel中。

DataTable類中的WriteXML方法會將模式寫出來,因此當您將其導入到Excel時,所有列標題也將被導入。

它還具有額外的優點,即您可以將數據導入其他可識別XML的包中。

+0

我同意,只需遍歷foreach循環中的行並將您的單元格導出到一個xml文件。這將使您可以輕鬆地將數據導入多個位置。 – pstrjds 2010-11-09 19:34:36

+1

@pstrjds - 如果你想要一個簡單的數據轉儲,那麼你甚至不需要自己迭代數據。 'WriteXML'將爲您完成這一切。顯然,如果你想過濾數據,那麼你需要做更多的工作。 – ChrisF 2010-11-09 19:39:45