This an assembly you can use for Excel 2013/2016/2019 COM interop, generated and signed by Microsoft.
a .NET library that can read/write Office formats without Microsoft Office installed. No COM+, no interop.
EPPlus is a .net library that reads and writes Excel 2007/2010 files using the Open Office Xml format (xlsx).
ClosedXML is a .NET library for reading, manipulating and writing Excel 2007+ (.xlsx, .xlsm) files. It aims to provide an intuitive and user-friendly interface to dealing with the underlying OpenXML API.
需要安裝 Microsoft Office
速度慢,ClosedXML可能不適合大量資料,存檔時間也是另外一個問題,我測試產生500頁A4(大約2萬多Rows)光存檔就花了200秒以上
最差,因官方Office 於設計時被定義為個人軟體,所以該Library對於多人同時操作與共享的支援性較差,對於一個Web Service而言,容易造成Excel程序無法被正確釋放,Server的記憶體被大量占用,進而導致Server的不穩定。
不支援大資料量以及多sheet的匯出
最佳,可大量資料操作且吃記憶體較小
記憶體使用量較高,30欄位 x 10萬筆資料的 excel 在過程中,closedxml 用了約1G的記憶體,epplus 卻不到 400M
差,不同的office版本之間可能會有兼容問題
NPOI目前支援.xls與.xlsx,但是兩種格式的文件於NPOI內部的元件設計並不相同。若開發的系統欲同時支援兩種格式,則必須撰寫兩份不同的程式碼來進行文件的產出。
僅支援.xlsx的格式,不支援2003版的Excel
最佳,檔案相容性測試又比NPOI及EPPlus好
需要購買 Microsoft Office
商用需NPOI 付費授權
EPPlus5.0以上版本要商業授權碼
MIT 授權
目前最佳免費方案是 EPPlus 4.5.3
基礎的編輯 4.X 完全可勝任。
日前因為有需要用到,研究了一下關於NPOI的部分,在此補充,若有誤煩請指正。
1. License
在github中有寫明是Apache License以及Commercial use,商業用途應該是不用另外付錢的。
NPOI License
Apache License
2. 多個Sheet
我自己寫的Component中,一個excel是可以匯出多個sheet的,我自己是使用C#的DataSet格式做處理,至於大資料量我並沒有研究,因此不甚了解。
my excel component on github