// <!--读取excel文件--> // <dependency> // <groupId>org.apache.poi</groupId> // <artifactId>poi</artifactId> // <version>3.9</version> // </dependency> // <dependency> // <groupId>org.apache.poi</groupId> // <artifactId>poi-ooxml</artifactId> // <version>3.9</version> // </dependency> // <dependency> // <groupId>org.apache.poi</groupId> // <artifactId>poi-ooxml-schemas</artifactId> // <version>3.10-FINAL</version> // </dependency> @RestController @RequestMapping("/workbook") public class WorkBookTool { private final static String xls = "xls"; private final static String xlsx = "xlsx"; @PostMapping("/readExcel") public static List<String> readExcel(MultipartFile file) { getWorkBook(file); List<String> strList = new ArrayList(); try { String fileName = file.getOriginalFilename(); InputStream inputStream = file.getInputStream(); //定义工作簿 XSSFWorkbook workbook = null; workbook = new XSSFWorkbook(inputStream); // 以上拿到excel表格 到workbook int num = workbook.getNumberOfSheets(); System.out.println("判断sheet页数,共" + num + "页。"); // 得到一个工作表 Sheet sheet = workbook.getSheetAt(0); String sheet1Name = sheet.getSheetName(); System.out.println("当前打印的sheet页" + sheet1Name); // 一共有几行 int sheetRowNum = sheet.getLastRowNum(); System.out.println(sheetRowNum); System.out.println(sheet.getPhysicalNumberOfRows()); XSSFRow rowss; Iterator<Row> rowIterator = sheet.iterator(); while (rowIterator.hasNext()) { rowss = (XSSFRow) rowIterator.next(); Iterator<Cell> cellIterator = rowss.cellIterator(); String str = "|"; while (cellIterator.hasNext()) { Cell cell = cellIterator.next(); switch (cell.getCellType()) { case Cell.CELL_TYPE_STRING: str = str + cell.getStringCellValue() + "|"; break; case Cell.CELL_TYPE_NUMERIC: //数值类型 BigDecimal bd = new BigDecimal(cell.getNumericCellValue()); String str2 = String.valueOf(bd); if(str2.contains(".")){ DecimalFormat df1 = new DecimalFormat("0.0"); str2 = df1.format(cell.getNumericCellValue()); } str = str + str2 + "|"; break; } } System.out.println(str); strList.add(str); } } catch (Exception e) { System.out.println("Excel data file cannot be found!"); } return strList; } public static Workbook getWorkBook(MultipartFile file) { //获得文件名 String fileName = file.getOriginalFilename(); //创建Workbook工作薄对象,表示整个excel Workbook workbook = null; try { //获取excel文件的io流 InputStream is = file.getInputStream(); //根据文件后缀名不同(xls和xlsx)获得不同的Workbook实现类对象 if (fileName.endsWith(xls)) { //2003 workbook = new HSSFWorkbook(is); } else if (fileName.endsWith(xlsx)) { //2007 workbook = new XSSFWorkbook(is); } } catch (IOException e) { System.out.println("Excel data file cannot be found!"); } return workbook; } }
来源:CSDN
作者:魔兽外衣
链接:https://blog.csdn.net/moshouwaiyi/article/details/103458616