@Override public JSONMsgPojo addProductByExcel(MultipartFile file) { if (file == null || file.isEmpty()) { return new JSONMsgPojo(0, "添加失败:未获取到文件", null); } Workbook workBook = null; try { workBook = Workbook.getWorkbook(file); } catch (IOException e) { e.printStackTrace(); } catch (BiffException e) { e.printStackTrace(); } Sheet sheet = workBook.getSheet(0); int rowNum = sheet.getRows(); int colNum = sheet.getColumns(); List<String> head1 = new ArrayList<>(); for (int i = 0; i < colNum; i++) { head1.add(sheet.getCell(i, 0).getContents()); } List<Map<String, Object>> list1 = new ArrayList<>(); for (int i = 1; i < rowNum; i++) { Map<String, Object> map1 = new HashMap<String, Object>(); for (int j = 0; j < colNum; j++) { String cell = sheet.getCell(j, i).getContents(); map1.put(head1.get(j), cell); } list1.add(map1); } return null; }
时间: 2024-02-14 17:17:13 浏览: 117
解决webView不支持网页,webViewinput type="file"上传功能
在你的代码中,可能会出现以下问题:
1. 如果发生 I/O 异常或 Biff 异常,你只是打印了错误堆栈,但没有给出任何返回值或错误信息。
2. 如果工作簿是空的或没有工作表,你的代码也没有处理这种情况。
3. 如果工作表的行或列数为零,你的代码也没有处理这种情况。
4. 在遍历工作表时,你没有检查单元格的值是否为空。
你可以在 `catch` 块中返回一个错误消息,以便更好地指示问题。你也可以在代码中添加一些逻辑来处理这些边缘情况。例如,你可以添加以下代码来检查工作簿是否为空:
```java
if (workBook == null) {
return new JSONMsgPojo(0, "添加失败:工作簿为空", null);
}
```
或者你可以添加以下代码来检查工作表是否为空:
```java
if (sheet == null || rowNum == 0 || colNum == 0) {
return new JSONMsgPojo(0, "添加失败:工作表为空", null);
}
```
在遍历工作表时,你可以添加以下代码来检查单元格的值是否为空:
```java
String cell = sheet.getCell(j, i).getContents();
if (cell == null || cell.trim().isEmpty()) {
continue;
}
```
这些修改应该可以让你的代码更健壮和可靠。
阅读全文