一、介紹
在平時的業(yè)務(wù)系統(tǒng)開發(fā)中,少不了需要用到導(dǎo)出、導(dǎo)入excel功能
apache 的 poi,其前身是Jakarta的POI Project項目,之后將其開源給 apache 基金會
HSSF方式:這種方式導(dǎo)出的文件格式為office 2003專用格式,即.xls,優(yōu)點是導(dǎo)出數(shù)據(jù)速度快,但是最多65536行數(shù)據(jù)
XSSF方式:這種方式導(dǎo)出的文件格式為office 2007專用格式,即.xlsx,優(yōu)點是導(dǎo)出的數(shù)據(jù)不受行數(shù)限制,缺點導(dǎo)出速度慢
SXSSF方式:SXSSF 是 XSSF API的兼容流式擴展,主要解決當(dāng)使用 XSSF 方式導(dǎo)出大數(shù)據(jù)量時,內(nèi)存溢出的問題,支持導(dǎo)出大批量的excel數(shù)據(jù)
easypoi
easypoi的底層也是某大佬程序員基于apache poi進行深度開發(fā)的,它主要的特點就是將更多重復(fù)的工作,全部簡單化,避免編寫重復(fù)的代碼
基于注解比較多
easyexcel
easyexcel 是阿里巴巴開源的一款 excel 解析工具,底層邏輯也是基于 apache poi 進行二次開發(fā)的。不同的是,再讀寫數(shù)據(jù)的時候,采用 sax 模式一行一行解析,在并發(fā)量很大的情況下,依然能穩(wěn)定運行!
總體來說,easypoi和easyexcel都是基于apache poi進行二次開發(fā)的。
不同點在于:
1、easypoi 在讀寫數(shù)據(jù)的時候,優(yōu)先是先將數(shù)據(jù)寫入內(nèi)存,優(yōu)點是讀寫性能非常高,但是當(dāng)數(shù)據(jù)量很大的時候,會出現(xiàn)oom,當(dāng)然它也提供了 sax 模式的讀寫方式,需要調(diào)用特定的方法實現(xiàn)。
2、easyexcel 基于sax模式進行讀寫數(shù)據(jù),不會出現(xiàn)oom情況,程序有過高并發(fā)場景的驗證,因此程序運行比較穩(wěn)定,相對于 easypoi 來說,讀寫性能稍慢!
easypoi 與 easyexcel 還有一點區(qū)別在于,easypoi 對定制化的導(dǎo)出支持非常的豐富,如果當(dāng)前的項目需求,并發(fā)量不大、數(shù)據(jù)量也不大,但是需要導(dǎo)出 excel 的文件樣式千差萬別,那么我推薦你用 easypoi;反之,使用 easyexcel !
二、easyExcel 相關(guān)
easyExcel 官網(wǎng)資料:
https://easyexcel.opensource.alibaba.com/docs/current/
官方關(guān)于Write的示例
https://github.com/alibaba/easyexcel/blob/master/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java