在这种方法中,我使用了用于读取 xlsx 文件的 xssf 类,但我们不能为 xls 文件执行此操作。对于 xls,我们需要有 Hssf 类。用户可以在那里导入任何格式。我的要求,有没有可以使用的类而不是 xssf 和 hssf 来读取这两种文件。在我的示例中,我使用了 xssf。
@RequestMapping(value="/import",method = RequestMethod.POST)
public ModelAndView imports(Model model, @RequestParam("excelFile") MultipartFile excelfile){
try {
List<DepartmentModel> lstUser = new ArrayList<>();
int i = 0;
XSSFWorkbook workbook = new XSSFWorkbook(excelfile.getInputStream());
XSSFSheet worksheet = workbook.getSheetAt(0);
while (i <= worksheet.getLastRowNum()) {
DepartmentModel user = new DepartmentModel();
XSSFRow row = worksheet.getRow(i++);
user.setHrName(row.getCell(0).getStringCellValue());
user.setDepartmentName(row.getCell(1).getStringCellValue());
user.setParentDepartment(row.getCell(2).getStringCellValue());
lstUser.add(user);
}
departmentService.updateList(lstUser);
model.addAttribute("lstUser", lstUser);
} catch (Exception e) {
e.printStackTrace();
}
return new ModelAndView("redirect:/listOfDepartment");
}
我有另一种方法,我使用 Hssf 读取 xls 文件。但是我只有一个导入按钮用户可以上传任何类型的文件 xls,xlsx 但对于导入按钮,我可以有一个操作,要么转到 xssf 或 hssf 方法。所以我喜欢要知道是否有任何可能的方法可以在单一方法中同时拥有两者。或者任何其他超类同时具有 Xssf 和 Hssf 类的属性。