优化后的代码如下所示:

public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { Workbook workbook = null; try (InputStream inputStream = file.getInputStream()) { String fileExtension = getFileExtension(Objects.requireNonNull(file.getOriginalFilename())); // 根据文件类型进行区分 if (fileExtension.equals("xlsx")) { workbook = new XSSFWorkbook(inputStream); } else if (fileExtension.equals("xls")) { workbook = new HSSFWorkbook(inputStream); } else { return AjaxResult.error("无效的文件扩展名"); }

    String sheetName = "a-HKG BW WHSE-in bound"; // 导入信息的工作表名称
    Sheet sheet = workbook.getSheet(sheetName);
    if (sheet == null) {
        throw new IllegalArgumentException("不存在名称为 " + sheetName + " 的工作表");
    }
    InputStream getSheetInputStream = workbookToInputStream(workbook);
    ExcelUtil<AHkgBwWhseInBound> util = new ExcelUtil<>(AHkgBwWhseInBound.class);
    List<AHkgBwWhseInBound> dataManagementList = util.importExcel(getSheetInputStream, 1);
    String operName = ShiroUtils.getSysUser().getLoginName();
    String message = aHkgBwWhseInBoundService.importData(dataManagementList, updateSupport, operName);
    return AjaxResult.success(message);
}

}

private static String getFileExtension(String fileName) { int dotIndex = fileName.lastIndexOf("."); if (dotIndex != -1 && dotIndex != 0) { return fileName.substring(dotIndex + 1); } else { return ""; } }

private static InputStream workbookToInputStream(Workbook workbook) throws IOException { ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); workbook.write(byteArrayOutputStream); return new ByteArrayInputStream(byteArrayOutputStream.toByteArray()); }

修改部分:

  1. 为了正确关闭输入流,使用了try-with-resources语句来自动关闭输入流。
  2. 修改了错误信息,使其更加清晰和有意义。
  3. 修改了抛出的异常信息,使其更加清晰和有意义
优化以下代码并用中文解释修改部分:public AjaxResult importDataMultipartFile file boolean updateSupport throws Exception Workbook workbook = null; InputStream inputStream = filegetInputStream; String fileExte

原文地址: https://www.cveoy.top/t/topic/hQr6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录