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

您的位置:首頁技術(shù)文章
文章詳情頁

SpringBoot讀取excel表格的示例代碼

瀏覽:166日期:2022-06-16 17:55:23
SpringBoot讀取excel表格

共同探討,向各位大佬學(xué)習(xí)走向CEO,迎娶白富美

pom.xml依賴

<!--springboot核心依賴--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> </parent> <dependencies> <!--springboot--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--excel--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.11</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.11</version> </dependency> <!--mybatis-plus--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.0</version> </dependency> <!--mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies>POIUtils工具類

public class POIUtils { private final static String xls = 'xls'; private final static String xlsx = 'xlsx'; private final static String DATE_FORMAT = 'yyyy/MM/dd'; /** * 讀入excel文件,解析后返回 * @param file * @throws IOException */ public static List<String> readExcel(MultipartFile file) throws IOException { //檢查文件 checkFile(file); //獲得Workbook工作薄對(duì)象 Workbook workbook = getWorkBook(file); //創(chuàng)建返回對(duì)象,把每行中的值作為一個(gè)數(shù)組,所有行作為一個(gè)集合返回// List<String[]> list = new ArrayList<String[]>(); List<String> list = new ArrayList<>(); if(workbook != null){ for(int sheetNum = 0;sheetNum < workbook.getNumberOfSheets();sheetNum++){//獲得當(dāng)前sheet工作表Sheet sheet = workbook.getSheetAt(sheetNum);if(sheet == null){ continue;}//獲得當(dāng)前sheet的開始行int firstRowNum = sheet.getFirstRowNum();//獲得當(dāng)前sheet的結(jié)束行int lastRowNum = sheet.getLastRowNum();//循環(huán)所有行for(int rowNum = firstRowNum;rowNum <= lastRowNum;rowNum++){ //獲得當(dāng)前行 Row row = sheet.getRow(rowNum); if(row == null){ continue; } //獲得當(dāng)前行的開始列 int firstCellNum = row.getFirstCellNum(); //獲得當(dāng)前行的列數(shù) int lastCellNum = row.getPhysicalNumberOfCells();// String[] cells = new String[row.getPhysicalNumberOfCells()]; //循環(huán)當(dāng)前行 for(int cellNum = firstCellNum; cellNum <= lastCellNum;cellNum++){ Cell cell = row.getCell(cellNum);// cells[cellNum] = getCellValue(cell); String cellValue = getCellValue(cell); list.add(cellValue); }} } workbook.close(); } return list; } //校驗(yàn)文件是否合法 public static void checkFile(MultipartFile file) throws IOException{ //判斷文件是否存在 if(null == file){ throw new FileNotFoundException('文件不存在!'); } //獲得文件名 String fileName = file.getOriginalFilename(); //判斷文件是否是excel文件 if(!fileName.endsWith(xls) && !fileName.endsWith(xlsx)){ throw new IOException(fileName + '不是excel文件'); } } public static Workbook getWorkBook(MultipartFile file) { //獲得文件名 String fileName = file.getOriginalFilename(); //創(chuàng)建Workbook工作薄對(duì)象,表示整個(gè)excel Workbook workbook = null; try { //獲取excel文件的io流 InputStream is = file.getInputStream(); //根據(jù)文件后綴名不同(xls和xlsx)獲得不同的Workbook實(shí)現(xiàn)類對(duì)象 if(fileName.endsWith(xls)){//2003workbook = new HSSFWorkbook(is); }else if(fileName.endsWith(xlsx)){//2007workbook = new XSSFWorkbook(is); } } catch (IOException e) { e.printStackTrace(); } return workbook; } public static String getCellValue(Cell cell){ String cellValue = ''; if(cell == null){ return cellValue; } //如果當(dāng)前單元格內(nèi)容為日期類型,需要特殊處理 String dataFormatString = cell.getCellStyle().getDataFormatString(); if(dataFormatString.equals('m/d/yy')){ cellValue = new SimpleDateFormat(DATE_FORMAT).format(cell.getDateCellValue()); return cellValue; } //把數(shù)字當(dāng)成String來讀,避免出現(xiàn)1讀成1.0的情況 if(cell.getCellType() == Cell.CELL_TYPE_NUMERIC){ cell.setCellType(Cell.CELL_TYPE_STRING); } //判斷數(shù)據(jù)的類型 switch (cell.getCellType()){ case Cell.CELL_TYPE_NUMERIC: //數(shù)字cellValue = String.valueOf(cell.getNumericCellValue());break; case Cell.CELL_TYPE_STRING: //字符串cellValue = String.valueOf(cell.getStringCellValue());break; case Cell.CELL_TYPE_BOOLEAN: //BooleancellValue = String.valueOf(cell.getBooleanCellValue());break; case Cell.CELL_TYPE_FORMULA: //公式cellValue = String.valueOf(cell.getCellFormula());break; case Cell.CELL_TYPE_BLANK: //空值cellValue = '';break; case Cell.CELL_TYPE_ERROR: //故障cellValue = '非法字符';break; default:cellValue = '未知類型';break; } return cellValue; }}controller測(cè)試

@RestController@RequestMapping('/excel')public class ExcelController { @PostMapping('/look') public void look(@RequestParam('excelFile') MultipartFile excelFile){ try { List<String> list = POIUtils.readExcel(excelFile);// list.removeIf(Objects::isNull);去掉null值 //去掉空字符串 Iterator<String> iterator = list.iterator(); while (iterator.hasNext()){if (iterator.next() == ''){ iterator.remove();} } //遍歷list,查看數(shù)據(jù) for (String s : list) {System.out.println(s); } //創(chuàng)建map對(duì)象或者pojo類存入所需的數(shù)據(jù), Map<String,Object> map = new HashMap<>(); map.put('plan',list.get(0)); map.put('er',list.get(2)); map.put('date',list.get(4)); System.out.println(map); } catch (IOException e) { e.printStackTrace(); } }}

訪問測(cè)試

SpringBoot讀取excel表格的示例代碼

控制臺(tái)輸出

2020年度審核計(jì)劃編制人:張三時(shí)間:2020/10/10審核依據(jù):1233211234567審核目的:12345555556984552368內(nèi)審組長(zhǎng):張器內(nèi)審副組長(zhǎng):漲吧審核分組:第一組張四李有里爾三點(diǎn)第二組張五王柳王琦士大夫{date=2020/10/10, plan=2020年度審核計(jì)劃, er=張三}

注意問題

在excel表格中,日期或者時(shí)間在java讀取時(shí)會(huì)以數(shù)值的類型讀取,得到的是10-十月-2020,所以在excel表格日期類型的數(shù)據(jù)用自定義類型,并設(shè)置格式。(親測(cè))

SpringBoot讀取excel表格的示例代碼

到此這篇關(guān)于SpringBoot讀取excel表格的示例代碼的文章就介紹到這了,更多相關(guān)SpringBoot讀取excel表格內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: excel
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
av资源中文在线| 精品国产欧美日韩一区二区三区| 国产精品2区| 国产精品高潮呻吟久久久久| 国产精品一区二区99| 国产精品多人| 国产一区二区视频在线看| 超碰成人av| 午夜欧美视频| 蜜臀av国产精品久久久久| 日韩在线麻豆| 国产精品久久久久9999高清| 色婷婷综合网| 尹人成人综合网| 免费看黄色91| 国产美女久久| 九九色在线视频| 国户精品久久久久久久久久久不卡| 国产99久久| 午夜久久av| 国产999精品在线观看| 红桃视频国产一区| 国产亚洲一区二区三区啪| 丁香六月综合| 蜜桃久久久久久久| 精品国产中文字幕第一页| 久久九九99| 深夜日韩欧美| 久久精品国产成人一区二区三区| 国产精品伦理久久久久久| 亚洲国产综合在线看不卡| 日韩欧美另类中文字幕| 国产成人免费精品| 亚洲一级网站| 青青草视频一区| 成人羞羞在线观看网站| 日韩一区二区三区四区五区| 中文在线免费视频| 日本不卡在线视频| 久久中文字幕av一区二区不卡| 日韩欧美美女在线观看| 成人久久一区| 久久成人高清| 免费在线观看精品| 国产夫妻在线| 久久精品99国产精品日本| 欧美日韩激情在线一区二区三区| 久久狠狠亚洲综合| 香蕉久久99| 久久超级碰碰| 爽爽淫人综合网网站| 久久亚洲精精品中文字幕| 亚洲精品欧美| 亚洲成人免费| 国产精品13p| 欧美中文高清| 久久亚洲不卡| 亚洲高清不卡| 97精品在线| 亚洲tv在线| 欧美日韩国产在线一区| 成人福利av| 久久精品99国产国产精| 激情丁香综合| 激情黄产视频在线免费观看| **爰片久久毛片| 亚洲高清av| 国产一区二区三区亚洲| 日本强好片久久久久久aaa| 欧美91视频| 色综合狠狠操| 国产日韩欧美中文在线| 天堂va蜜桃一区二区三区| 日韩一区欧美| 国产极品嫩模在线观看91精品| 美女精品在线观看| 欧美福利一区| 日韩在线短视频| 久久不见久久见中文字幕免费| 日韩欧美在线精品| 中文字幕一区二区三区日韩精品 | 日韩av电影一区| 天堂成人免费av电影一区 | 国产极品模特精品一二| 亚洲精品乱码日韩| 日韩欧美精品一区| 日韩精品免费观看视频| 日韩高清中文字幕一区| 午夜亚洲福利在线老司机| 国产99亚洲| 国产 日韩 欧美 综合 一区| 精精国产xxxx视频在线播放| 久久av影院| 视频精品一区二区| 在线一区视频观看| 视频精品一区| 欧美成人一二区| 国产一区二区精品| 国产精品蜜芽在线观看| 精品精品99| 国产一区二区三区四区五区| 麻豆一区二区99久久久久| 国产精品magnet| 成人在线视频区| 91精品婷婷色在线观看| 亚洲欧美日韩专区| 日韩欧美另类中文字幕| 国产日韩欧美三级| 久久三级毛片| 天堂中文av在线资源库| 亚洲欧美综合| 亚洲精品综合| 日本vs亚洲vs韩国一区三区二区| 免播放器亚洲一区| 日韩欧美高清一区二区三区| 国产精久久久| 国产suv精品一区二区四区视频| 国产拍在线视频| 国产综合激情| 日本一区免费网站| 精品九九在线| 亚洲精品成人| 欧美另类中文字幕| 国产成人精品三级高清久久91 | 亚洲国产日韩欧美在线| 亚洲精品女人| 精品亚洲a∨一区二区三区18| 91亚洲国产成人久久精品| 91久久久精品国产| 无码日韩精品一区二区免费| 国产福利资源一区| 蜜桃成人av| 91久久精品无嫩草影院| 都市激情国产精品| 亚洲免费婷婷| 国产精品白浆| 欧美日韩在线网站| 日本视频一区二区| 欧美日韩在线观看首页| 亚洲三级毛片| 91青青国产在线观看精品| 亚洲一区二区成人| 国产精品xxx| 国产精品7m凸凹视频分类| 日韩中文字幕一区二区高清99| 国产精品黑丝在线播放| 亚洲精品进入| 久久久精品久久久久久96| 亚洲bt欧美bt精品777| www.九色在线| 亚久久调教视频| 日韩av免费| 69堂精品视频在线播放| 在线日韩一区| 久久精品国产久精国产| 爽好久久久欧美精品| 亚洲伊人av| 日韩精品国产精品| 亚洲成av在线| 国产伦精品一区二区三区视频 | 亚洲乱码久久| 久久国产日韩| 国产三级一区| 久久99伊人| 亚洲啊v在线| 国产欧美一区二区三区精品观看| 亚洲不卡av不卡一区二区| 日韩av一区二区三区| 一区在线视频观看| 亚洲天堂资源| 麻豆精品在线观看| 日韩欧美中文字幕在线视频| 美女网站一区| 成人亚洲精品| 国产精品a久久久久| 亚洲人成网站在线在线观看| 欧美va天堂| 精品欧美一区二区三区在线观看| 国产精品成人自拍| 91在线成人| 亚洲日本在线观看视频| 九一国产精品| av在线资源| 精品一区二区三区中文字幕 | 日韩欧美精品| 久久精品国产福利| 日韩国产在线观看| 免费成人在线视频观看| 在线一区免费| 不卡一区综合视频| 日本久久成人网| 美女av在线免费看| 国产中文字幕一区二区三区| 国产视频一区二区在线播放| 亚洲一区二区av| 男女男精品网站| 综合五月婷婷| 鲁大师成人一区二区三区 | 亚洲精品中文字幕乱码| 欧美亚洲激情|