diff --git a/src/main/java/com/iflytop/nuclear/controller/UploadController.java b/src/main/java/com/iflytop/nuclear/controller/UploadController.java index efa36bc..c013534 100644 --- a/src/main/java/com/iflytop/nuclear/controller/UploadController.java +++ b/src/main/java/com/iflytop/nuclear/controller/UploadController.java @@ -39,6 +39,7 @@ public class UploadController { if (!isValid) { return ResponseData.fail("上传文件内容未按照标准版式排版"); } + Long saveId = uploadService.saveFileContentToDB(file); // 获取文件原本的名字 String originName = file.getOriginalFilename(); // 判断文件是否是pdf文件 diff --git a/src/main/java/com/iflytop/nuclear/service/UploadService.java b/src/main/java/com/iflytop/nuclear/service/UploadService.java index 90e79e9..5405405 100644 --- a/src/main/java/com/iflytop/nuclear/service/UploadService.java +++ b/src/main/java/com/iflytop/nuclear/service/UploadService.java @@ -13,4 +13,5 @@ import java.io.IOException; public interface UploadService { boolean verifyFileFormat(MultipartFile file) throws IOException; + Long saveFileContentToDB(MultipartFile file) throws IOException; } diff --git a/src/main/java/com/iflytop/nuclear/service/impl/UploadServiceImpl.java b/src/main/java/com/iflytop/nuclear/service/impl/UploadServiceImpl.java index fbffbcc..f37cf8f 100644 --- a/src/main/java/com/iflytop/nuclear/service/impl/UploadServiceImpl.java +++ b/src/main/java/com/iflytop/nuclear/service/impl/UploadServiceImpl.java @@ -1,6 +1,8 @@ package com.iflytop.nuclear.service.impl; import com.iflytop.nuclear.service.UploadService; +import org.apache.poi.ss.usermodel.Cell; +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; @@ -9,6 +11,8 @@ import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; /** * @author cool @@ -35,4 +39,36 @@ public class UploadServiceImpl implements UploadService { } return false; } + + @Override + public Long saveFileContentToDB(MultipartFile file) throws IOException { + InputStream inputStream = file.getInputStream(); + Workbook wb = new XSSFWorkbook(inputStream); + Sheet sheet = wb.getSheetAt(0); + int physicalNumberOfRows = sheet.getPhysicalNumberOfRows(); + int physicalNumberOfColumns = sheet.getRow(1).getPhysicalNumberOfCells(); + // 通过传递参数获取当前excel所处的taskid并存储 + List result = new ArrayList<>(); + for (int r = 2; r < physicalNumberOfRows; r += 3) { + List> list = new ArrayList<>(); + // 一次性对三行数据进行汇总并创建存储对象 + for(int f = r; f < r + 3; f++){ + List line = new ArrayList<>(); + Row row = sheet.getRow(f); + for(int c = 1; c < physicalNumberOfColumns; c++) { + Cell cell = row.getCell(c); + if (null != cell) { + String stringCellValue = cell.getStringCellValue(); + line.add(stringCellValue); + } + } + list.add(line); + } + result.add((ArrayList) list); + } + System.out.println(result); + // 对result进行遍历组合成每条数据 插入数据库中 + + return null; + } } diff --git a/src/main/java/com/iflytop/nuclear/utils/ExcelUtils.java b/src/main/java/com/iflytop/nuclear/utils/ExcelUtils.java deleted file mode 100644 index b736032..0000000 --- a/src/main/java/com/iflytop/nuclear/utils/ExcelUtils.java +++ /dev/null @@ -1,162 +0,0 @@ -// package com.iflytop.nuclear.utils; -// -// import com.iflytop.nuclear.model.NuclearCoreConfig; -// import org.apache.poi.hssf.usermodel.HSSFCell; -// import org.apache.poi.hssf.usermodel.HSSFWorkbook; -// import org.apache.poi.ss.usermodel.*; -// import org.apache.poi.xssf.usermodel.XSSFWorkbook; -// import org.springframework.web.multipart.MultipartFile; -// -// import java.io.IOException; -// import java.io.InputStream; -// import java.text.DecimalFormat; -// import java.time.LocalDate; -// import java.time.LocalDateTime; -// import java.time.format.DateTimeFormatter; -// import java.util.ArrayList; -// import java.util.List; -// -// /** -// * @author xjt -// * @version 1.0 -// */ -// public class ExcelUtils { -// //总行数 -// private static int totalRows = 0; -// //总条数 -// private static int totalCells = 0; -// //错误信息接收器 -// private static String errorMsg; -// -// /** -// * 读EXCEL文件,获取信息集合 -// * @return -// */ -// public static List getExcelInfo(MultipartFile mFile) { -// String fileName = mFile.getOriginalFilename();//获取文件名 -// try { -// if (!validateExcel(fileName)) {// 验证文件名是否合格 -// return null; -// } -// boolean isExcel2003 = true;// 根据文件名判断文件是2003版本还是2007版本 -// if (isExcel2007(fileName)) { -// isExcel2003 = false; -// } -// List userList = createExcel(mFile.getInputStream(), isExcel2003); -// return userList; -// } catch (Exception e) { -// e.printStackTrace(); -// } -// return null; -// } -// /** -// * 根据excel里面的内容读取客户信息 -// * @param is 输入流 -// * @param isExcel2003 excel是2003还是2007版本 -// * @return -// * @throws IOException -// */ -// public static List createExcel(InputStream is, boolean isExcel2003) { -// try{ -// Workbook wb = null; -// if (isExcel2003) {// 当excel是2003时,创建excel2003 -// wb = new HSSFWorkbook(is); -// } else {// 当excel是2007时,创建excel2007 -// wb = new XSSFWorkbook(is); -// } -// List userList = readExcelValue(wb);// 读取Excel里面客户的信息 -// return userList; -// } catch (IOException e) { -// e.printStackTrace(); -// } -// return null; -// } -// /** -// * 读取Excel里面客户的信息 -// * @param wb -// * @return -// */ -// private static List readExcelValue(Workbook wb) { -// //默认会跳过第一行标题 -// // 得到第一个shell -// Sheet sheet = wb.getSheetAt(0); -// // 得到Excel的行数 -// totalRows = sheet.getPhysicalNumberOfRows(); -// // 得到Excel的列数(前提是有行数) -// if (totalRows > 1 && sheet.getRow(0) != null) { -// totalCells = sheet.getRow(0).getPhysicalNumberOfCells(); -// } -// List userList = new ArrayList(); -// // 循环Excel行数 -// for (int r = 1; r < totalRows; r++) { -// Row row = sheet.getRow(r); -// if (row == null){ -// continue; -// } -// BuiPatientInfo user = new BuiPatientInfo(); -// // 循环Excel的列 -// for (int c = 0; c < totalCells-1; c++) { -// Cell cell = row.getCell(c); -// if (null != cell) { -// if (c == 0) { //第一列 -// //如果是纯数字,将单元格类型转为String -// if(cell.getCellTypeEnum() == CellType.NUMERIC){ -// cell.setCellType(CellType.STRING); -// } -// user.setPatientName(cell.getStringCellValue());//将单元格数据赋值给user -// } -// else if (c == 1){ -// if(cell.getCellTypeEnum() == CellType.NUMERIC){ -// cell.setCellType(CellType.STRING); -// } -// user.setPatientIdentity(cell.getStringCellValue()); -// } -// else if (c == 2){ -// if(cell.getCellTypeEnum() == CellType.NUMERIC){ -// cell.setCellType(CellType.STRING); -// } -// String stringCellValue = cell.getStringCellValue(); -// user.setHealingId(stringCellValue); -// } -// else if (c == 3){ -// if(cell.getCellTypeEnum() == CellType.NUMERIC){ -// cell.setCellType(CellType.STRING); -// } -// user.setElseInfo(String.valueOf(cell.getStringCellValue())); -// } -// } -// } -// //将excel解析出来的数据赋值给对象添加到list中 -// user.setUpdateTime(LocalDateTime.now()); -// user.setPatientBirthdate(IdentityUtil.getPatientBirth(user.getPatientIdentity())); //拿到身份中好通过已经写好的通过身份证信息获取出生年月工具类 -// user.setPatientSex(IdentityUtil.getPatientSex(user.getPatientIdentity())); //通过省份证号,获取男女信息工具类 -// user.setPatientState(1); //当前实体类字段是固定的,不是excel数据中的。每个对象都可以再遍历完后增加固定属性值 -// user.setCreateId(2L); -// user.setCreateTime(LocalDateTime.now()); -// // 添加到list -// userList.add(user); -// } -// return userList; -// } -// /** -// * 验证EXCEL文件 -// * -// * @param filePath -// * @return -// */ -// public static boolean validateExcel(String filePath) { -// if (filePath == null || !(isExcel2003(filePath) || isExcel2007(filePath))) { -// errorMsg = "文件名不是excel格式"; -// return false; -// } -// return true; -// } -// // @描述:是否是2003的excel,返回true是2003 -// public static boolean isExcel2003(String filePath) { -// return filePath.matches("^.+\\.(?i)(xls)$"); -// } -// //@描述:是否是2007的excel,返回true是2007 -// public static boolean isExcel2007(String filePath) { -// return filePath.matches("^.+\\.(?i)(xlsx)$"); -// } -// } diff --git a/src/main/resources/public/a.xlsx b/src/main/resources/public/a.xlsx deleted file mode 100644 index 200b98c..0000000 Binary files a/src/main/resources/public/a.xlsx and /dev/null differ diff --git a/uploadfiles/xlsx/20230628/堆芯模版.xlsx b/uploadfiles/xlsx/20230628/堆芯模版.xlsx index 3c6cbc0..652af5e 100644 Binary files a/uploadfiles/xlsx/20230628/堆芯模版.xlsx and b/uploadfiles/xlsx/20230628/堆芯模版.xlsx differ