功能介紹
IMPORT
alanpoi import有何優勢?
-
valid:方法參數返回excel所有數據,用戶可進行自我校驗
-
error:導入錯誤會回調
-
end:方法參數返回校驗成功的數據,valid校驗失敗的數據不會返回,用戶可以自己操作持久化或者其他業務
-
用戶不需要額外引入poi等繁瑣的jar
-
毫秒級解析大文件,支持一鍵解析多sheet頁簽,不需要自己按照一定的格式循環匹配解析所有數據
-
不管你的系統多么復雜,有多少個導入,
alanpoi
全部支持,而且準確返回你需要的對象,減輕開發者工作量 -
目前外界業務越來越復雜,對各個功能要求也越來越嚴格,當然導入也不例外,alanpoi支持錯誤一鍵回寫到excel,對應到每一行
-
alanpoi
靈活可擴展,提供了ExcelConsumeInterface
接口,可繼承它,實現valid、error、end
三個方法編寫自己的業務
怎么使用alanpoi實現導入
項目中使用:
<dependency> <groupId>com.alanpoigroupId> <artifactId>alanpoi-analysisartifactId> <version>1.3.0version> dependency>
簡單一句話:一配置一繼承一調用
一配置
在項目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
接口,實現方法
/** *whenerrorwill調用 * *@paramexcelError */ voiderror(ExcelErrorexcelError); /** *customvaliddata * *@paramworkbookId *@paramsheetDataList */ voidvalidData(StringworkbookId,List
一調用
用戶調用ExcelExportUtil
類的customImportData
即可,參數excelId就是excel-conifg.xml
中配置的id
Export
描敘
能夠用一行代碼實現絕不用第二行,如果一行不行,那就再加一行!
模式
注解模式導出:
-
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);
方式二. 調用getWorkbook
獲取工作表,自行處理workbook
ExcelExportUtil.getWorkbook(Collection>singleSheetData,Class>c)
高級使用
示例一:導出指定列(動態導出列)
List
示例二:多sheet頁簽導出
List
代碼已經開源,地址:
https://github.com/alan-et/alanpoi/tree/develop/alanpoi-analysis
-
處理器
+關注
關注
68文章
19332瀏覽量
230163 -
Excel
+關注
關注
4文章
219瀏覽量
55543 -
import
+關注
關注
0文章
15瀏覽量
1973
原文標題:幾行代碼就能實現復雜的 Excel 導入導出,這個工具類真心強大!
文章出處:【微信號:AndroidPush,微信公眾號:Android編程精選】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論