EasyExcel是阿裏巴巴開源的poi插件之壹,主要解決了poi框架使用復雜、sax解析方式不易操作、數據量大容易OOM等問題,從而解決了POI並發帶來的誤差。
主要解決方法:通過解壓文件加載,逐行加載,丟棄樣式、字體等不重要的數據,減少對內存的占用。
EasyExcel的優勢
批註自定義操作。
I/O很簡單,它為I/O過程提供了壹個接口。
支持單元格合並等壹些靈活的操作。
二、常用筆記
@ExcelProperty
指定當前字段對應於excel中的哪壹列。您可以通過名稱或索引進行匹配。當然,可以留空。默認情況下,第壹個字段是index=0,依此類推。小心,要麽不要全寫,要麽用index all,要麽用names all來匹配。不要把這三者混在壹起,除非妳非常清楚如何在源代碼中對它們進行排序。如果妳是學Spring Boot的,推薦壹個連續多年持續更新的免費教程:/spring-boot-learning-2x/
@ExcelIgnore
默認情況下,所有字段都將與excel匹配。如果添加此註釋,該字段將被忽略。
@日期時間格式
日期轉換,用String接收excel日期格式的數據會調用這個標註。其中的值引用java.text.SimpleDateFormat
@數字格式
數字轉換,用String接收excel數字格式的數據會調用這個註釋。其中的值引用java.text.DecimalFormat
@ ExcelIgnoreUnannotated
默認情況下,不添加ExcelProperty評論的會參與讀寫,添加的不參與。
第三,?Com。阿裏巴巴易Excel 2.1.4 javax。Servlet Javax。Servlet-API 4.0.1提供了com。阿裏巴巴快JSON 1.2.47四、監控?/* * * easy Excel import monitor */public class Excel Listener Extensions AnalyzeEventListener {//可以通過壹個例子得到這個值;私有列表datas = new ArrayList();@ Override public void invoke(Object o,analysis context analysis context){ datas . add(o);//數據存儲在列表中,用於批處理或後續的業務邏輯處理。do something(o);//按自己的業務處理} private void do something(object object){//1,入庫調用接口} public list get data(){ return data;} public void set datas(List datas){ this . datas = datas;} @ Override public void doafterallanalyzed(analysis context analysis context){//datas . clear();//解析後銷毀未使用的資源}} 5。導入Excel試入界面{//獲取文件名字符串filename = file。getOriginalfilename();//獲取文件流inputstream = file . getinputstream();//實例化實現AnalysisEventListener接口的類Excel Listener = New Excel Listener();//傳入參數Excel Reader Excel Reader = New Excel Reader(輸入流,exceltypeenum.xls,null,listener);//讀取信息Excel閱讀器。閱讀(新聞頁(1,0,測試。類));//Get data list list = listener . Get data();if(list . size()& gt;1){ for(int I = 0;我& ltlist . size();i++){ Test obj =(Test)list . get(I);JSON object jo = new JSON object();} } } catch(異常e){ system . out . println(e . getmessage());},界面導出Excel
HttpServletResponse響應,HttpServletRequest請求
試試{ String filenames = " 111111 ";string User Agent = request . get header(" User-Agent ");if(user agent . contains(" MSIE ")| | user agent . contains(" Trident ")){ filenames = urlencoder . encode(filenames," UTF-8 ");} else { filenames = new String(filenames . getbytes(" UTF-8 ")," ISO-8859-1 ");} response . setcontenttype(" application/vnd . ms-exce ");response . setcharacterencoding(" utf-8 ");response . add header(" Content-Disposition "," filename=" + filenames +"。xlsx”);easy excel . write(response . get output stream()、Test.class)。紙張(“紙張”)。doWrite(測試列表);} catch (Exception e) {}另外,如果妳學的是Spring Cloud,推薦壹個更新多年的免費教程:/spring-cloud-learning/ VII。本地導入和本地導出列表測試列表=新數組列表
以上是EasyExcel的基本使用流程。歡迎喜歡並關註交流。
Source | /p/4e6aa6342b33
更多好文章
壹萬字帶妳學ElasticSearch。