Excel文件操作工具类
直接上代码package com.sccin.spboot.utils; import com.sccin.spboot.pojo.exception.RunMsgException; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.usermodel.BorderStyle; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Comment; import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.VerticalAlignment; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Excel文件操作 * * @author zx */ public final class ExcelUtil { /** * 结束标记 */ public static final String END_OF_TABLE = "$end_of_table"; /** * 日志 */ private static final Logger LOGGER = LoggerFactory.getLogger(ExcelUtil.class); private ExcelUtil() { } /** * 读取Excel文件中的数据 * * @param excelFile excel文件 * @param startLine 起始行(基于0) * @return map数据 */ public static Map getData(File excelFile, int startLine) { try (Workbook workbook = WorkbookFactory.create(excelFile)) { Sheet sheet = workbook.getSheetAt(0); int endLine = sheet.getLastRowNum(); return getData(excelFile, startLine, endLine); } catch (IOException | InvalidFormatException e) { LOGGER.error(e.getMessage(), e); } return Collections.emptyMap(); } /** * 读取Excel文件中的数据 * * @param excelFile excel文件 * @param startLine 起始行(基于0) * @param endLine 结束行(基于0) * @return map数据 */ public static Map getData(File excelFile, int startLine, int endLine) { Map map = new HashMap<>(); try (Workbook workbook = WorkbookFactory.create(excelFile)) { Sheet sheet = workbook.getSheetAt(0); for (int i = startLine; i <= endLine; i++) { Row row = sheet.getRow(i); if (row != null) { rowToMap(row, map); } } } catch (IOException | InvalidFormatException e) { LOGGER.error(e.getMessage(), e); } return map; } /** * 读取Excel文件中表格的数据 * * @param excelFile excel文件 * @param titleLine 表格标题所在的行(基于0) * @return 数据列表 */ public static List