色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

alanpoi import有何優勢 怎么使用alanpoi實現導入

Android編程精選 ? 來源:CSDN技術社區 ? 作者:Alan_0310 ? 2022-06-29 16:19 ? 次閱讀

	

		

		

功能介紹

IMPORT

  • ExcelHandle核心處理器

  • ExcelWorkbookManageexcel所有工作表管理

  • ExcelInitConfig配置文件初始化

  • AbstractFileParser文件轉換類

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,ListsheetDataList,MapexcelParam); /** *@paramsheetDataListreturnsuccessdata */ voidend(ListsheetDataList,MapexcelParam);

一調用

用戶調用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(CollectionsingleSheetData,Classc)

高級使用

示例一:導出指定列(動態導出列)


					

Listlist=newArrayList<>(); for(inti=0;i500;i++){ ExportVOexportVO=newExportVO(); exportVO.setName("name"+i); exportVO.setValue(newBigDecimal(123.11+i*0.09)); exportVO.setAmount(newBigDecimal(6666.666+i*10)); exportVO.setDate(newDate(132324343+i*100)); exportVO.setDateTime(newjava.util.Date()); list.add(exportVO); } ListcolList=newArrayList<>(); //按照順序僅導出add的列 colList.add("name"); colList.add("value"); //調用獲取workbook對象;也可以直接調用exportSpecifyCol方法導出到瀏覽器 Workbookworkbook=ExcelExportUtil.getWorkbookSpecifyCol(list,ExportVO.class,colList);

示例二:多sheet頁簽導出


					

Listlist=newArrayList<>(); Listlist2=newArrayList<>(); for(inti=0;i500;i++){ ExportVOexportVO=newExportVO(); exportVO.setName("name"+i); exportVO.setValue(newBigDecimal(123.11+i*0.09)); exportVO.setAmount(newBigDecimal(6666.666+i*10)); exportVO.setDate(newDate(132324343+i*100)); exportVO.setDateTime(newjava.util.Date()); list.add(exportVO); Export2VOexport2VO=newExport2VO(); export2VO.setName("name"+i); export2VO.setValue("value"+i); export2VO.setAmount(newBigDecimal(6666.666+i*10)); export2VO.setDate(newDate(132324343+i*100)); export2VO.setDateTime(newjava.util.Date()); list2.add(export2VO); } Map,Collection>map=newHashMap<>(); map.put(ExportVO.class,list); map.put(Export2VO.class,list2); //調用獲取workbook對象;也可以直接調用exportByMultiSheet方法導出到瀏覽器 Workbookworkbook=ExcelExportUtil.getWorkbookByMultiSheet(map);

代碼已經開源,地址:

https://github.com/alan-et/alanpoi/tree/develop/alanpoi-analysis

原文標題:幾行代碼就能實現復雜的 Excel 導入導出,這個工具類真心強大!

文章出處:【微信公眾號:Android編程精選】歡迎添加關注!文章轉載請注明出處。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19332

    瀏覽量

    230163
  • Excel
    +關注

    關注

    4

    文章

    219

    瀏覽量

    55543
  • import
    +關注

    關注

    0

    文章

    15

    瀏覽量

    1973

原文標題:幾行代碼就能實現復雜的 Excel 導入導出,這個工具類真心強大!

文章出處:【微信號:AndroidPush,微信公眾號:Android編程精選】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    ARM-based相比ARM cortex優勢

    你看好ARM-based架構嗎 相比ARM cortex優勢 ARM其他還有什么架構啊,感覺曝光的好少。。
    發表于 04-24 06:55

    微內核什么時候發布?微內核優勢

    想了解下微內核什么時候發布的?微內核優勢
    發表于 10-10 10:09

    網表仿真與RTL仿真相比優勢

    網表仿真與RTL仿真相比優勢?“線與”邏輯是什么?
    發表于 11-04 06:23

    Keil_import相關資料

    Keil_import相關資料,需要的下來看看
    發表于 08-16 18:54 ?5次下載

    MCU中導入DSP/FPU作用?資料下載

    電子發燒友網為你提供MCU中導入DSP/FPU作用?資料下載的電子資料下載,更有其他相關的電路圖、源代碼、課件教程、中文資料、英文資料、參考設計、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發表于 04-23 08:52 ?5次下載
    MCU中<b class='flag-5'>導入</b>DSP/FPU<b class='flag-5'>有</b><b class='flag-5'>何</b>作用?資料下載

    import-mailbox-to-gmail郵件導入工具

    ./oschina_soft/import-mailbox-to-gmail.zip
    發表于 05-23 11:00 ?2次下載
    <b class='flag-5'>import</b>-mailbox-to-gmail郵件<b class='flag-5'>導入</b>工具

    python包模塊相對導入from和import介紹1

    無包文件**init**.py下,python通過import module導入模塊時,先搜索程序運行主目錄。 程序運行主目錄為運行的py文件所在目錄,而不是執行python.exe時所在目錄。 模塊搜索路徑sys.path參考:python模塊基礎
    的頭像 發表于 02-21 14:15 ?1042次閱讀

    簡述python包模塊import和from及all

    python指定導入目錄路徑,稱為包導入。 通過import和from導入包模塊。 通過**all**指定導入的模塊和
    的頭像 發表于 02-21 14:20 ?1261次閱讀

    淺析python模塊創建和from及import使用

    python模塊通過用python程序編寫的.py文件即可創建,通過from及import語句導入模塊來使用。
    的頭像 發表于 02-21 14:44 ?867次閱讀

    import模塊的導入方法

    : 一般通過 import 語句實現模塊的導入和使用, import 本質上是使用了內置函數 __import__() 當我們 通過
    的頭像 發表于 09-11 17:31 ?1242次閱讀

    rom…import導入代碼介紹

    rom…import導入 基本語法格式如下: from 模塊名 import 成員1,成員2,… 如果希望導入一個模塊中的所有成員,則可以采用如下方式: from 模塊名
    的頭像 發表于 09-11 17:35 ?956次閱讀

    如何實現__import__()動態導入

    import () 動態導入 import 語句本質上就是調用內置函數 import (),我們可以通過它實現動態
    的頭像 發表于 09-11 17:38 ?1158次閱讀

    Python import Hook 實現遠程導入模塊

    的進階技能,會深入地探討并以真實案例講解 Python import Hook 的知識點。 當然為了使文章更系統、全面,前面會有小篇幅講解基礎知識點,但請你耐心的往后讀下去,因為后面才是本篇文章的精華所在,希望你不要錯過。 1.
    的頭像 發表于 11-02 11:45 ?650次閱讀
    Python <b class='flag-5'>import</b> Hook <b class='flag-5'>實現</b>遠程<b class='flag-5'>導入</b>模塊

    如何用import導入一個包

    在Python中,import語句用于導入代碼所需的模塊或包。模塊是Python代碼的集合,而包是包含模塊和其他包的文件夾。在本文中,我將詳細說明如何使用import語句導入包。
    的頭像 發表于 11-22 14:59 ?1176次閱讀

    java導入import怎么寫

    在Java中,使用import語句來引入其他包中的類,以便在當前文件中使用這些類。import語句可以幫助我們有效地組織和管理代碼,并且使程序更易讀和易維護。下面是關于Java中import語句
    的頭像 發表于 11-22 15:00 ?1020次閱讀
    主站蜘蛛池模板: 91热久久免费频精品动漫99| 久久无码AV亚洲精品色午夜麻豆 | 成人小视频免费在线观看| 国产人妻人伦精品熟女麻豆 | 91系列在线观看免费| 热の中文 AV天堂| 97人人爽人人爽人人人片AV| 国产精品伊人| 色欲人妻无码AV专区| 99re1久久热在线播放| 日本不卡免免费观看| 国产视频精品在线偷拍| 兽交白浆喷水高潮| 成3d漫二区三区四区| 欧美国产影院| 97视频国产| 我与旗袍老师疯狂床震| 丁香成人网址| 日本亚洲精品无码区国产电影| 99久久精品费精品国产| 免费人成视频19674不收费| 亚洲中文字幕一二三四区苍井空| 国产精品免费一区二区三区四区| 日韩高清在线亚洲专区| 大迪克黑人异族| 亚洲免费中文| 精品国产免费人成视频| 亚洲视频在线观看不卡| 激情内射亚洲一区二区三区| 亚洲精品综合在线影院| 欧美精品一卡二卡| 国产亚洲精品久久久久久入口| 97夜夜澡人人爽人人模人人喊 | 嗨嗨快播电影| 亚洲一区精品伊人久久伊人| 欧美特级另类xxx| 啊…嗯啊好深男男小黄文| 青草在线在线d青草在线| 成 人 网 站毛片| 在线播放一区| 免费精品国偷自产在线在线|