日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java應用EasyExcel工具類

瀏覽:213日期:2022-05-22 16:52:16
一、前言

關于EasyExcel,它對poi做了進一步的封裝,使得整個編寫流程更加的面向對象。好處嘛,我認為流程上更加清晰即易懂、可讀性更好,壞處的話,則是操作上沒有原生的方式那么靈活。

二、導入 StudentVo為實體類, 注意實體中的各個屬性要和excel按順序一 一對應,建議都用String類型,真正插入時,才去做轉換 ImportExcelListener 類為真正處理數據的類 CommonService 只是一個Spring的service bean,用來執行curd操作

private CommonService commonService; public void importExcel(MultipartFile file) throws IOException { // HEAD_ROW_NUMBER為Excel中的頭部行數, 這里的關于ImportExcelListener的構造方法中HEAD_ROW_NUMBER參數可以根據需要決定傳或者不傳EasyExcel.read(file.getInputStream(), StudentVo.class, new ImportExcelListener<StudentVo>(HEAD_ROW_NUMBER, commonService)).sheet().headRowNumber(HEAD_ROW_NUMBER).doRead(); }

ImportExcelListener 類如下,這里根據實際需要,可以不用泛型。

public class ImportExcelListener<T> extends AnalysisEventListener<T> {/** * 每隔BATCH_COUNT條存儲數據庫 然后清理list ,方便內存回收 */private static final int BATCH_COUNT = 500;private int headRowNum;private CommonService commonService;private List<T> list = new ArrayList<>();public ImportExcelListener(int headRowNumber, CommonService commonService) { this.headRowNum = headRowNumber; this.commonService = commonService;}/** * 這個每一條數據解析都會來調用 */@Overridepublic void invoke(T data, AnalysisContext context) { // 這里也可以將data轉為對應實體, 然后做一些參數校驗 Integer rowNum = context.readRowHolder().getRowIndex(); log.info('當前解析的數據為第{}行', rowNum); list.add(data); // 批量保存, 防止一次性數據過多, 內存溢出 if (list.size() >= BATCH_COUNT) {// 保存commonService.save(list);list.clear(); }}// 在解析之后, 也要記得再判斷是否為空, 不為空要保存一下@Overridepublic void doAfterAllAnalysed(AnalysisContext context) { if (CollectionUtils.isEmpty(list)) {return; } commonService.save(list); list.clear();} }

如果對導入的數據沒啥特別處要求且數據量也不多,也可以直接采用如下這種方式:

List<Object> data = null;try { data = EasyExcelFactory.read(file.getInputStream()).sheet().doReadSync();} catch (IOException e) { log.error('讀取失敗', e); throw new BusinessException('讀取失敗');}// 保存操作// ...三、導出 無需映射實體對象, 實際運用中查出來數據后, 需要自己去遍歷組裝成List<List<?>>的二維類型,表示第幾行第幾列。

public void test() throws FileNotFoundException {File file = new File('E:work-grandview測試.xlsx');// 創建writerBuilder對象,自動調整列寬ExcelWriter excelWriter = EasyExcel.write(new FileOutputStream(file)).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).autoCloseStream(Boolean.TRUE).build();// List<List<?>>類型, 二維數據, 表示第幾行第幾列, 設置表頭內容List<List<String>> titleList = new ArrayList<>();titleList.add(Arrays.asList('名稱', 'key', 'value'));int sheetNum = 0;WriteSheet writeSheet = EasyExcel.writerSheet(sheetNum,'導出數據').build();excelWriter.write(titleList, writeSheet);// 生成導出內容;List<List<Object>> content = new ArrayList<>();// 10行3列for (int i = 0; i < 10; i++) { List<Object> dataList = new ArrayList<>(); for (int j = 0; j < 3; j++) {dataList.add(j); } content.add(dataList);}// 寫入文件excelWriter.write(content, writeSheet);// 關閉文件流excelWriter.finish(); }

Java應用EasyExcel工具類

通過EasyExcel提供的注解,將實體映射到對應列中:

@Data public class VO {@ExcelProperty(value = '姓名', index = 0)int name;@ExcelProperty(value = 'key', index = 1)int key;@ExcelProperty(value = 'value', index = 2)int value; }@Test public void test() throws FileNotFoundException {File file = new File('E:work-grandview測試.xlsx');// 創建writerBuilder對象,自動調整列寬ExcelWriter excelWriter = EasyExcel.write(new FileOutputStream(file)).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).autoCloseStream(Boolean.TRUE).build();// 生成導出內容;List<VO> content = new ArrayList<>();// 10行3列for (int i = 0; i < 10; i++) { VO vo = new VO(); vo.setKey(i); vo.setName(i); vo.setValue(i); content.add(vo);}// 創建sheet, 設置0號表, 實際運用中可能得創建多張, 可以遍歷數據, 每滿足n條就創建i號sheet表WriteSheet writeSheet = EasyExcel.writerSheet(0,'導出數據').build();// 設置表頭writeSheet.setClazz(content.get(0).getClass());// 寫入文件excelWriter.write(content, writeSheet);excelWriter.finish(); }

一開始創建后,莫名奇妙多了個this0 列 , 后 來 想 了 想 , 原 來 我 的 實 體 類 是 T e s t 類 的 內 部 類 來 著 , 而 ‘ c o n t e n t . g e t ( 0 ) . g e t C l a s s ( ) ‘ 拿 到 的 是 一 個 代 理 類 T e s t 0列,在設置表頭時,同時被處理為屬性值了。在將VO類寫到外部后解決。

Java應用EasyExcel工具類

Java應用EasyExcel工具類

到此這篇關于Java應用EasyExcel工具類的文章就介紹到這了,更多相關Java EasyExcel工具類內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: excel
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩精品久久久久久| 日韩亚洲在线| 久久精品国产免费| 日韩在线看片| 亚洲精品97| 欧美激情一区| 国产精品久一| 国产精品亚洲成在人线| 日韩高清中文字幕一区| 国产日韩综合| 亚洲成av在线| 久久人人88| 婷婷五月色综合香五月| 久久影视三级福利片| 亚洲欧洲专区| se01亚洲视频 | 国产麻豆综合| 久久亚洲不卡| 日韩高清欧美激情| 中文字幕在线免费观看视频| 影音国产精品| 国产精品久久| 国产综合亚洲精品一区二| 日韩国产欧美三级| 亚洲激情社区| 国产日韩欧美在线播放不卡| 九一成人免费视频| 激情久久婷婷| 69堂精品视频在线播放| 麻豆精品99| 一区在线观看| 欧美激情91| 丁香婷婷久久| 亚洲第一精品影视| 精品中文字幕一区二区三区四区| 91高清一区| 色网在线免费观看| 清纯唯美亚洲综合一区| 136国产福利精品导航网址| 精品一区二区男人吃奶 | 久久三级毛片| 荡女精品导航| 香蕉久久久久久久av网站| 日韩精品第二页| 国产精品久久久久av蜜臀| 久久久水蜜桃av免费网站| 日韩久久一区| 亚洲一区二区毛片| 久久久国产亚洲精品| 欧美日韩 国产精品| 日韩一区二区久久| 日韩精品网站| 国产一区二区三区亚洲综合| 国产视频一区欧美| 亚洲午夜天堂| 精品黄色一级片| 国产精品一区二区三区四区在线观看 | 久久国产尿小便嘘嘘| 亚洲欧美日韩视频二区| 欧美国产美女| 国产精品免费大片| 777久久精品| 欧美中文高清| 午夜久久av| 国产视频一区三区| 先锋影音久久久| 三级在线观看一区二区| 一区免费视频| 婷婷五月色综合香五月| 青青草国产精品亚洲专区无| 国产精品一区二区免费福利视频| 亚洲精品国产精品粉嫩| 伊人精品久久| 日本一区二区三区视频在线看| 亚洲综合精品四区| 日韩欧美一区二区三区在线观看| 久久av免费看| 97精品在线| 九色porny丨国产首页在线| 亚洲va久久久噜噜噜久久| 免费日韩一区二区| 日本综合精品一区| 亚洲乱码视频| 欧美亚洲三级| 电影91久久久| 日韩视频在线一区二区三区| 日韩三级视频| 午夜精品成人av| 亚洲日产av中文字幕| 麻豆91精品视频| 99久久久久国产精品| 91精品丝袜国产高跟在线| 久久青青视频| 亚洲精品日本| 国产精品欧美大片| 99tv成人| 97久久亚洲| 久久在线电影| 欧美日韩亚洲一区在线观看| 欧美激情另类| 久久精品99国产精品| 午夜日韩av| 天堂√8在线中文| 69堂免费精品视频在线播放| 天堂资源在线亚洲| 老牛国内精品亚洲成av人片| 亚洲免费一区二区| 国产精品videossex久久发布 | 一区二区精品伦理...| 乱人伦精品视频在线观看| 久久久91麻豆精品国产一区| 日本 国产 欧美色综合| 久久久久99| 高清av一区| 欧美日本一区| 亚洲美女91| 亚洲一区黄色| 亚洲a一区二区三区| 国精品产品一区| 国产日韩高清一区二区三区在线 | 电影天堂国产精品| 美女精品在线| 国产美女一区| 国产精品婷婷| 亚洲精品中文字幕乱码| 久久中文亚洲字幕| 亚洲成人国产| 激情久久久久久久| 一区久久精品| 蜜臀av国产精品久久久久| 国产一区视频在线观看免费| 色婷婷亚洲mv天堂mv在影片| 精品五月天堂| 免费看av不卡| 国产一区日韩欧美| 国产亚洲毛片| 日韩网站中文字幕| 日本韩国欧美超级黄在线观看| 国产夫妻在线| 日韩欧美三级| 精品丝袜在线| 99在线精品免费视频九九视| 亚洲尤物在线| 视频一区中文字幕精品| 日韩中文av| 鲁大师精品99久久久| 精品国产不卡| 久久久久免费av| 日韩中文字幕区一区有砖一区| 日韩精品一区二区三区中文| 精品国产不卡| 亚洲成人一区在线观看| 国内亚洲精品| 欧美亚洲综合视频| 日本蜜桃在线观看视频| 在线视频精品| 美女视频黄久久| 女同性一区二区三区人了人一| 视频一区中文字幕国产| 欧美精品影院| 1024精品一区二区三区| 欧美一区激情| 国产综合精品| 精品久久久久中文字幕小说| 亚洲精品91| 精品久久中文| 国产一区二区中文| 日本aⅴ精品一区二区三区 | 久久一二三区| 久久影院资源站| 另类激情亚洲| 久久久久久自在自线| 亚洲人成网站在线在线观看| 国产精品亚洲欧美日韩一区在线| 女同性一区二区三区人了人一| 国产日韩欧美一区二区三区 | 蜜臀91精品一区二区三区| 日本成人在线视频网站| 久久精品亚洲人成影院| 免费一级欧美片在线观看网站| 亚洲日本久久| 日本欧美在线看| 在线视频精品| 国产亚洲精品v| 久久精品91| 波多野结衣久久精品| 免费日韩成人| 国产精久久久| 国产精品大片免费观看| 中文字幕高清在线播放| 国产欧美综合一区二区三区| 亚洲精品一区二区在线看| 久久精品人人| 91九色综合| 国产精品啊v在线| 国产精品欧美大片| 美女在线视频一区| yellow在线观看网址| zzzwww在线看片免费| 人在线成免费视频|