起源:
之前在做一個項目時,客戶提出了許多的導出數據的需求:
- 導出用戶信息
- 導出業務實體信息
- 各種查詢都要能導出
- 導出的數據要和界面上看到的一致
- 可以分頁導出
- 。。。
為了應對用戶的這些需求,我決定先寫一個能夠滿足這些需求的導出功能封裝庫,於是就有了這個類庫。
選材:
導出 Excel 完全靠自己寫是不太實際的,因此需要使用一些現成的東西,目前導出 Excel 大約有一下方法:
- 使用 COM 組件
- 使用 OpenXMLSDK
- 使用 NPOI
使用 COM 組件,效率較低
使用 OpenXmlSDK,目前智能生成 Office 2007 格式,還不夠通用
NPOI 是一個開源庫,從 java 的 POI 中移植而來,支持 Office 2003 以前的格式,也具有較高的性能。
因此,我決定對 NPOI 進行一個封裝,於是就有了這個類庫。下面介紹一下這個類庫。
類庫介紹
本類庫通過對數據源的抽象,提取了一個接口,來支持多種數據源,並且提供了一些常見的實現。
隨類庫提供了一個演示程序,演示了本類庫支持的主要特性。
類庫封裝了 NPOI,為了支持分頁,使用了 SharpZipLib 來打包文件,這兩個都是開源的類庫,本類庫的項目中已經包含這兩個類庫編譯好的版本,如果需要他們的源代碼,可以自行到相應的官方下載地址下載。
打開解決方案文件 Baiynui.Exports\Baiynui.Exports\Baiynui.Exports.sln,就可以打開本類庫的源代碼工程和演示工程。
適用場景
- 本類庫是為解決批量數據導出的問題而設計的,對批量數據的導出提供回調過濾的操作,可以方便的控制導出的數據。
- 導出需要一個數據源,數據源是一個接口,可以自行實現。本類庫中自帶一些實現,可以導出 DataTable,DataSet,DataGridView 等
- 支持分頁
不適用場景
本類庫對需要格式定制的 Excel 沒有考慮,不能滿足此種需求
最后強調,打開解決方案文件 Baiynui.Exports\Baiynui.Exports\Baiynui.Exports.sln,就可以打開本類庫的源代碼工程和演示工程,祝你使用愉快,如果在使用的過程中遇到任何問題,都可以聯系我。
類庫下載地址:http://files.cnblogs.com/baiynui/Baiynui.Exports.rar
應一位朋友的要求,給他寫了一個在 ASP.NET 中導出的示例,大家可以參考。http://files.cnblogs.com/baiynui/exportxls.rar