首先要了解
easyExcel怎麼取得表頭直接貼程式碼就不廢話了
import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import lombok.Data; import java.util.*; @Data public class AnalysisEventMonitor extends AnalysisEventListener<Map<Integer, String>> { /** * 存储Key */ Map<Integer, String> key = new HashMap<>(); /** * keuList */ List<String> keyList=new ArrayList<>(); public AnalysisEventMonitor() { } /** * 重写invokeHeadMap方法,获去表头,如果有需要获取第一行表头就重写这个方法,不需要则不需要重写 * * @param headMap Excel每行解析的数据为Map<Integer, String>类型,Integer是Excel的列索引,String为Excel的单元格值 * @param context context能获取一些东西,比如context.readRowHolder().getRowIndex()为Excel的行索引,表头的行索引为0,0之后的都解析成数据 */ @Override public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) { Set<Integer> integerSet = headMap.keySet(); for (Integer integer : integerSet) { keyList.add(headMap.get(integer)); } key.putAll(headMap); } @Override public void doAfterAllAnalysed(AnalysisContext context) { } @Override public void invoke(Map<Integer, String> integerStringMap, AnalysisContext analysisContext) { } }
這塊程式碼就是用於easyExcel讀取excel表格的時候攔截表頭
類別自己建立繼承AnalysisEventListener 就可以然後重寫她的invokeHeadMap方法就可以取得到excel 的一級表頭了。
下面匯入檔案一塊的程式碼
//加载拦截器 作用于 获取表头 AnalysisEventMonitor analysisEventMonitor = new AnalysisEventMonitor (); //读取导入的excel 这个地方容易报错 0✖什么的 这个时候就去把excel的文件用高级版本的excel重新导出 因为版本过低的问题 List<Map<Integer,Object>> list = EasyExcel.read(file.getInputStream(),analysisEventMonitor ).sheet(0).doReadSync(); //获取拦截器拦截到的 表头的Map集合 Map<Integer, String> key = analysisEventMonitor .getKey();
現在 我們拿到了資料也拿到了表頭。有的人就會好奇了,你只是取得了一級表頭,那我二級錶頭怎麼辦?別急 聽我慢慢說。
上方的程式碼區塊, 第二行取得了excel的數據這個數據是去掉了一級表頭之後的數據,說到這可能有的人就懂了,有的人還是不懂ok我們繼續說,第三行程式碼是我們攔截器攔截的表頭的集合可以看出來是以map接收的map的key是一個Integer類型,欸巧了,我們的資料list 其中也包了個map而且map的key 剛好也是Integer類型,這時候邏輯性好的同學一定想到了,這個integer 可不是瞎寫瞎排序的而是表頭的位置與資料遙相呼應的。那這個時候就簡單了,我們只需要找到多級表頭的開始位置 即可 下面我會貼圖 然後再做解答。
看到現在成績是合併了的多層表頭,這時候我們獲取到的表頭集合中的1對應姓名2對應電話3對應成績我們獲取到的資料list,程式碼寫list.get(0); 這個取得到的資料就是二級表頭中的資料這個時候又是拿到了一個map 對應關係分別是1=null 2=null 3=英文4=語文。這時候又有人說了 如果我後面再多一個多層錶頭怎麼辦?貼圖。
這時候我們取得到的表頭資料中1=姓名2=電話3=成績4=null 5=考核結果取得到的list資料中1=null 2=null 3=英文4=語文5=英文6=語文
到此多表頭的導入就結束了,有的人還是不知道怎麼把他存入資料庫,那你就要想想了,最笨的方法就是記得下標填入實體類別中,這個辦法非常不建議不靈活!最好的方法就是用枚舉 匹配 文字 再匹配字段 填充實體類別 再或者 寫個方法 將文字與字段對應上 自動轉換實體類別。
以上是Java easyExcel的多層表頭怎麼導入的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavadevelovermentIrelyPlatForm-DeTueTososeVeralFactors.1)JVMVariationsAffectPerformanceNandBehaviorAcroSsdifferentos.2)Nativelibrariesviajnijniiniininiinniinindrododerplatefform.3)

Java代碼在不同平台上運行時會有性能差異。 1)JVM的實現和優化策略不同,如OracleJDK和OpenJDK。 2)操作系統的特性,如內存管理和線程調度,也會影響性能。 3)可以通過選擇合適的JVM、調整JVM參數和代碼優化來提升性能。

Java'splatFormentenceHaslimitations不包括PerformanceOverhead,versionCompatibilityIsissues,挑戰WithnativelibraryIntegration,Platform-SpecificFeatures,andjvminstallation/jvminstallation/jvmintenance/jeartenance.therefactorscomplicatorscomplicatethe“ writeOnce”

PlatformIndependendecealLowsProgramStormonanyPlograwsStormanyPlatFormWithOutModification,而LileCross-PlatFormDevelopmentRequiredquiresMomePlatform-specificAdjustments.platFormIndependence,EneblesuniveByjava,EnablesuniversUniversAleversalexecutionbutmayCotutionButMayComproMisePerformance.cross.cross.cross-platformd

JITcompilationinJavaenhancesperformancewhilemaintainingplatformindependence.1)Itdynamicallytranslatesbytecodeintonativemachinecodeatruntime,optimizingfrequentlyusedcode.2)TheJVMremainsplatform-independent,allowingthesameJavaapplicationtorunondifferen

javaispopularforcross-platformdesktopapplicationsduetoits“ writeonce,runany where”哲學。 1)itusesbytiesebyTecodeThatrunsonAnyJvm-備用Platform.2)librarieslikeslikeslikeswingingandjavafxhelpcreatenative-lookingenative-lookinguisis.3)

在Java中編寫平台特定代碼的原因包括訪問特定操作系統功能、與特定硬件交互和優化性能。 1)使用JNA或JNI訪問Windows註冊表;2)通過JNI與Linux特定硬件驅動程序交互;3)通過JNI使用Metal優化macOS上的遊戲性能。儘管如此,編寫平台特定代碼會影響代碼的可移植性、增加複雜性、可能帶來性能開銷和安全風險。

Java將通過雲原生應用、多平台部署和跨語言互操作進一步提昇平台獨立性。 1)雲原生應用將使用GraalVM和Quarkus提升啟動速度。 2)Java將擴展到嵌入式設備、移動設備和量子計算機。 3)通過GraalVM,Java將與Python、JavaScript等語言無縫集成,增強跨語言互操作性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

WebStorm Mac版
好用的JavaScript開發工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。