大量資料使用EXCEL匯出-EPPlus介紹
WILLIAM
2012 - 11 - 29

由於大家在匯出EXCEL的時候幾乎還是都在用2003,常常會被筆數限制,如果大於65535就要使用sheet來做分頁。

所以研究了一下用EXCEL2007做匯出EXCEL的功能。不過EXCEL2007最多還是只有100萬筆。

       

改用新版本的 Excel 2007(*.xlsx) 也可以改善這些問題,舉例來說:

  • 可支援到 1,048,576 筆資料列。
  • 可支援到 16,384 資料行。
  • Excel 2007 讓試算表的容量擴充到超過 1 百萬資料列和 1 萬 6 千資料行。

       

        匯出EXCEL的套件有二種NPOI vs. EPPlus

 

        NPOI:使用於(Excel2003及之前的版本),可寫出Excel2003(xls),可讀Excel2003 (xls)/ Excel2007(xlsx)

        EPPlus:EPPlus is a .net library that reads and writes Excel 2007/2010 files using the Open Office Xml format (xlsx).

 

        參考別人做的測試在匯出的測試

       

使用NPOI產出65535筆資料花費41 sec。
使用EPPlus產出65999筆花費2 sec。

 

        加上資料如果超過65535筆會造成困擾,需要做分頁等等,所以可參考使用EPPLUS這套件。但如果使用者手上只有2003,那當然還是乖乖用NPOI這套囉。

        另外還有一種是使用XML格式將EXCEL匯出,這種方式比較萬用。

        這種方式我們可以先將一份EXCEL,匯出成XML的資料格式,然後參照他的格式就可以自行編寫EXCEL了,好處是不用使用其他元件。

 

        使用方式

 

        EPPlus

//讀值

    Value = sheet.Cells[i, 1].Value.ToString();

   //寫值

    sheet.Cells[i, 1].Value = Value;

       

 

 

        NPOI

// 插入資料值。

sheet.CreateRow(0).CreateCell(0).SetCellValue("0");

 

 

        XML

//插入資料值

@"<Cell><Data ss:Type=""String"">測試</Data></Cell>"

 

        上述三種方式相比較的話,是EPPlus較簡易好操作。

 

25636
Comments
隱形設計:推動 iPad 主宰平板電腦的力量來認識FATFace Production Ltd.BACK
110台北市信義區信義路五段 150 巷 2 號 20 樓之 2
20F.-2, No.2, Ln. 150, Sec. 5, Xinyi Rd., Xinyi Dist., Taipei,Taiwan R.O.C.

+886 2 2739 0000

+886 2 2758 9856