功能介紹
IMPORT
-
ExcelHandle核心處理器 -
ExcelWorkbookManageexcel所有工作表管理 -
ExcelInitConfig配置文件初始化
alanpoi import有何優(yōu)勢?
-
valid:方法參數(shù)返回excel所有數(shù)據(jù),用戶可進行自我校驗
-
error:導入錯誤會回調(diào)
-
end:方法參數(shù)返回校驗成功的數(shù)據(jù),valid校驗失敗的數(shù)據(jù)不會返回,用戶可以自己操作持久化或者其他業(yè)務
-
用戶不需要額外引入poi等繁瑣的jar
-
毫秒級解析大文件,支持一鍵解析多sheet頁簽,不需要自己按照一定的格式循環(huán)匹配解析所有數(shù)據(jù)
-
不管你的系統(tǒng)多么復雜,有多少個導入,
alanpoi全部支持,而且準確返回你需要的對象,減輕開發(fā)者工作量 -
目前外界業(yè)務越來越復雜,對各個功能要求也越來越嚴格,當然導入也不例外,alanpoi支持錯誤一鍵回寫到excel,對應到每一行
-
alanpoi靈活可擴展,提供了ExcelConsumeInterface接口,可繼承它,實現(xiàn)valid、error、end三個方法編寫自己的業(yè)務
怎么使用alanpoi實現(xiàn)導入
項目中使用:
<dependency> <groupId>com.alanpoigroupId> <artifactId>alanpoi-analysisartifactId> <version>1.3.0version> dependency>
簡單一句話:一配置一繼承一調(diào)用
一配置
在項目resources目錄中新建excel-config.xml文件,cosume中配置自己的消費類路徑,繼承ExcelConsumeInterface接口,sheet中的vo是把當前sheet序列化的對象路徑,column中當然就是配置vo中的屬性了。
其中name可選字段,填了就是按照這個匹配excel列名,不填就是按照offset順序;導入包含多個sheet就配置多個
<exgname="excelId"version="1.0"file-type="excel"> <excelid="ACCOUNT"consume="com.xxx.FinAccountImportHandler"> <sheetindex="0"row-start="1"column-start="0" vo="com.xxx.vo.FinAccountImportVO"> <columnname="公司/供應商編號"offset="1">companyCodecolumn> <columnname="公司/供應商名稱"offset="2">companyNamecolumn> <columnname="銀行賬號"offset="3">bankAccountcolumn> <columnname="開戶銀行"offset="4">bankNamecolumn> sheet> excel> exg>
一繼承
consume類繼承ExcelConsumeInterface接口,實現(xiàn)方法
/** *whenerrorwill調(diào)用 * *@paramexcelError */ voiderror(ExcelErrorexcelError); /** *customvaliddata * *@paramworkbookId *@paramsheetDataList */ voidvalidData(StringworkbookId,List
一調(diào)用
用戶調(diào)用ExcelExportUtil類的customImportData即可,參數(shù)excelId就是excel-conifg.xml中配置的id
Export
描敘
能夠用一行代碼實現(xiàn)絕不用第二行,如果一行不行,那就再加一行!
模式
注解模式導出:
-
ExcelSheet注解:用于導入類上,可制定sheet名,列頭的顏色、字體、高度、寬度
-
ExcelColum注解:用于導入類的屬性上,可指定列頭的名稱,單元格的樣式
-
DateFormat注解:用于導入類的屬性上, 可以按照指定格式輸出到excel,默認"
yyyy/MM/dd" -
NumFormat注解:用于導入類的屬性上,可以按照指定格式輸出到excel,默認"
00.00"
樣例:
@ExcelSheet(name="測試",backColor=AlanColors.GREEN,font="宋體",fontSize=25) @Data publicclassExportVO{ @ExcelColumn(name="名稱",width=32,link="${url}") privateStringname; @ExcelColumn(name="值") privateStringvalue; @ExcelColumn(name="金額") @NumFormat(value="0000.00##") privateBigDecimalamount; @ExcelColumn(name="時間格式化") @DateFormat(value="yyyy-MM-ddhhss") privateDatedateTime; @DateFormat @ExcelColumn(name="日期格式化") privatejava.sql.Datedate; @ExcelColumn(isExist=false) privateStringurl; }
使用
方式一. 直接導出到瀏覽器
ExcelExportUtil.export(Colletion>,Class,HttpServletRequest,HttpServletResponse,fileName);
方式二. 調(diào)用getWorkbook獲取工作表,自行處理workbook
ExcelExportUtil.getWorkbook(Collection>singleSheetData,Class>c)
高級使用
示例一:導出指定列(動態(tài)導出列)
List
示例二:多sheet頁簽導出
List
代碼已經(jīng)開源,地址:
https://github.com/alan-et/alanpoi/tree/develop/alanpoi-analysis
-
處理器
+關注
關注
68文章
20253瀏覽量
252234 -
Excel
+關注
關注
4文章
231瀏覽量
57698 -
import
+關注
關注
0文章
15瀏覽量
2199
原文標題:幾行代碼就能實現(xiàn)復雜的 Excel 導入導出,這個工具類真心強大!
文章出處:【微信號:AndroidPush,微信公眾號:Android編程精選】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
ARM-based相比ARM cortex有何優(yōu)勢?
微內(nèi)核什么時候發(fā)布?微內(nèi)核有何優(yōu)勢?
MCU中導入DSP/FPU有何作用?資料下載
python包模塊相對導入from和import介紹1
簡述python包模塊import和from及all
淺析python模塊創(chuàng)建和from及import使用
import模塊的導入方法
rom…import導入代碼介紹
如何實現(xiàn)__import__()動態(tài)導入
Python import Hook 實現(xiàn)遠程導入模塊
alanpoi import有何優(yōu)勢 怎么使用alanpoi實現(xiàn)導入
評論