From 8c12bbbf711732e52e322fe7d8b95f9f887513d5 Mon Sep 17 00:00:00 2001 From: fwq <582742538@qq.com> Date: 星期五, 03 二月 2023 17:06:30 +0800 Subject: [PATCH] poi4.0+ --- src/main/java/com/hx/util/ExcelFileUtil.java | 129 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 129 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/hx/util/ExcelFileUtil.java b/src/main/java/com/hx/util/ExcelFileUtil.java new file mode 100644 index 0000000..2b28c71 --- /dev/null +++ b/src/main/java/com/hx/util/ExcelFileUtil.java @@ -0,0 +1,129 @@ +package com.hx.util; + + +import com.hx.exception.TipsException; +import jxl.CellType; +import org.apache.poi.hssf.usermodel.*; +import org.apache.poi.ss.usermodel.*; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * Excel宸ュ叿绫伙紙鍏煎poi4.0+锛� + */ +public class ExcelFileUtil { + + /** + * 璇诲彇 Excel鏂囦欢鍐呭 + * + * @param file + * @param header 鏄惁鍖呮嫭琛ㄥご + * @return + * @throws Exception + */ + public static List<List<String>> readExcelByeFileData(MultipartFile file, boolean header) throws Exception { + // 缁撴灉闆� + List<List<String>> list = new ArrayList<>(); + if (file == null){ + return list; + } + String fileName = file.getOriginalFilename(); + if (!fileName.matches("^.+\\.(?i)(xls)$") && !fileName.matches("^.+\\.(?i)(xlsx)$")) { + throw new TipsException("涓婁紶鏂囦欢鏍煎紡涓嶆纭�"); + } + + Workbook hssfworkbook = WorkbookFactory.create(file.getInputStream()); + + int num = hssfworkbook.getNumberOfSheets(); + if (num == 0){ + return list; + } + List<String> rowList; + for (int k = 0; k< num ; k++) { + Sheet sheet = hssfworkbook.getSheetAt(k); + + for (int i = 0; i <= sheet.getLastRowNum(); i++) { + rowList = new ArrayList<>(); + // 鑾峰彇绗琲琛岀殑鏁版嵁 + Row row = sheet.getRow(i); + // getLastCellNum() 鑾峰彇杩欎竴琛屼腑鍗曞厓鏍肩殑鏁伴噺 + for (int j = 0; j < row.getLastCellNum(); j++) { + // 鑾峰彇绗琲琛岀j鍒楃殑鍗曞厓鏍兼暟鎹� + rowList.add(row.getCell(j).toString()); + } + list.add(rowList); + } + } + return list; + } + + + /** + * 璇诲彇 Excel鏂囦欢鍐呭 + * + * @param file + * @param header 鏄惁鍖呮嫭琛ㄥご + * @return + * @throws Exception + */ + public static List<List<String>> readExcelByeFileData(File file, boolean header) throws Exception { + // 缁撴灉闆� + List<List<String>> list = new ArrayList<>(); + if (file == null){ + return list; + } + String fileName = file.getName(); + if (!fileName.matches("^.+\\.(?i)(xls)$") && !fileName.matches("^.+\\.(?i)(xlsx)$")) { + throw new TipsException("涓婁紶鏂囦欢鏍煎紡涓嶆纭�"); + } + + Workbook hssfworkbook = WorkbookFactory.create(new FileInputStream(file)); + + int num = hssfworkbook.getNumberOfSheets(); + if (num == 0){ + return list; + } + List<String> rowList; + for (int k = 0; k< num ; k++) { + Sheet sheet = hssfworkbook.getSheetAt(k); + + for (int i = 0; i <= sheet.getLastRowNum(); i++) { + rowList = new ArrayList<>(); + // 鑾峰彇绗琲琛岀殑鏁版嵁 + Row row = sheet.getRow(i); + // getLastCellNum() 鑾峰彇杩欎竴琛屼腑鍗曞厓鏍肩殑鏁伴噺 + for (int j = 0; j < row.getLastCellNum(); j++) { + // 鑾峰彇绗琲琛岀j鍒楃殑鍗曞厓鏍兼暟鎹� + rowList.add(row.getCell(j).toString()); + } + list.add(rowList); + } + } + return list; + } + + + + private static String objToString(Object obj) { + if (obj == null) { + return ""; + } else { + if (obj instanceof String) { + return (String) obj; + } else if (obj instanceof Date) { + return null; + } else { + return obj.toString(); + } + } + } + + +} -- Gitblit v1.8.0