|
@@ -0,0 +1,54 @@
|
|
|
|
+package cn.cslg.pas.common.utils;
|
|
|
|
+
|
|
|
|
+import cn.hutool.core.collection.IterUtil;
|
|
|
|
+import cn.hutool.poi.excel.ExcelUtil;
|
|
|
|
+import io.swagger.v3.oas.models.security.SecurityScheme;
|
|
|
|
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
|
|
|
+import org.apache.poi.ss.usermodel.Row;
|
|
|
|
+import org.apache.poi.ss.usermodel.Sheet;
|
|
|
|
+import org.apache.poi.ss.usermodel.Workbook;
|
|
|
|
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
|
+
|
|
|
|
+import java.io.*;
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.HashMap;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.Map;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * @Author xiexiang
|
|
|
|
+ * @Date 2023/5/30
|
|
|
|
+ */
|
|
|
|
+public class ReadExcelUtils {
|
|
|
|
+
|
|
|
|
+ public static Map ReadExcelOneRow(String filePath, Integer row) {
|
|
|
|
+ Map<Object, Object> map = new HashMap<>();
|
|
|
|
+ //判断传入文件路径不为空
|
|
|
|
+ if(filePath == null && filePath == ""){
|
|
|
|
+ ThrowException.throwXiaoShiException("传入文件路径不存在");
|
|
|
|
+ }
|
|
|
|
+ File file = new File(filePath);
|
|
|
|
+ try {
|
|
|
|
+ InputStream inputStream = new FileInputStream(file);
|
|
|
|
+ //XSSFWorkbook可以处理xlsx文件
|
|
|
|
+ Workbook workbook = new XSSFWorkbook(inputStream);
|
|
|
|
+ //读取第几个sheet
|
|
|
|
+ Sheet sheet = workbook.getSheetAt(0);
|
|
|
|
+ //读取总行数
|
|
|
|
+ int rows = sheet.getPhysicalNumberOfRows();
|
|
|
|
+ if(rows - 1 <= row){
|
|
|
|
+ ThrowException.throwXiaoShiException("row超出Excel文档中数量");
|
|
|
|
+ }
|
|
|
|
+ Row firstRow = sheet.getRow(0);
|
|
|
|
+ Row needRow = sheet.getRow(row);
|
|
|
|
+ //读取第一行的时候会多读一列
|
|
|
|
+ Integer firstColumns = firstRow.getLastCellNum() - 0;
|
|
|
|
+ for(int i = 0; i < firstColumns; i++){
|
|
|
|
+ map.put(firstRow.getCell(i),needRow.getCell(i));
|
|
|
|
+ }
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ return map;
|
|
|
|
+ }
|
|
|
|
+}
|