Java代码实现Excel表格导入
2021/8/3 20:06:18
本文主要是介绍Java代码实现Excel表格导入,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Java代码实现Excel表格导入
/** * Excel 解析成 员工数据集合 * * @param file * @param allNations * @param allPoliticsstatus * @param allDepartments * @param allPositions * @param allJobLevels * @return */ public static List<Employee> excel2Employee(MultipartFile file, List<Nation> allNations, List<Politicsstatus> allPoliticsstatus, List<Department> allDepartments, List<Position> allPositions, List<JobLevel> allJobLevels) { List<Employee> list = new ArrayList<>(); Employee employee = null; try { //1. 创建一个 workbook 对象 HSSFWorkbook workbook = new HSSFWorkbook(file.getInputStream()); //2. 获取 workbook 中表单的数量 int numberOfSheets = workbook.getNumberOfSheets(); for (int i = 0; i < numberOfSheets; i++) { //3. 获取表单 HSSFSheet sheet = workbook.getSheetAt(i); //4. 获取表单中的行数 int physicalNumberOfRows = sheet.getPhysicalNumberOfRows(); for (int j = 0; j < physicalNumberOfRows; j++) { //5. 跳过标题行 if (j == 0) { continue;//跳过标题行 } //6. 获取行 HSSFRow row = sheet.getRow(j); if (row == null) { continue;//防止数据中间有空行 } //7. 获取列数 int physicalNumberOfCells = row.getPhysicalNumberOfCells(); employee = new Employee(); for (int k = 0; k < physicalNumberOfCells; k++) { HSSFCell cell = row.getCell(k); switch (cell.getCellType()) { case STRING: String cellValue = cell.getStringCellValue(); switch (k) { case 1: employee.setName(cellValue); break; case 2: employee.setWorkID(cellValue); break; case 3: employee.setGender(cellValue); break; case 5: employee.setIdCard(cellValue); break; case 6: employee.setWedlock(cellValue); break; case 7: int nationIndex = allNations.indexOf(new Nation(cellValue)); employee.setNationId(allNations.get(nationIndex).getId()); break; case 8: employee.setNativePlace(cellValue); break; case 9: int politicstatusIndex = allPoliticsstatus.indexOf(new Politicsstatus(cellValue)); employee.setPoliticId(allPoliticsstatus.get(politicstatusIndex).getId()); break; case 10: employee.setPhone(cellValue); break; case 11: employee.setAddress(cellValue); break; case 12: int departmentIndex = allDepartments.indexOf(new Department(cellValue)); employee.setDepartmentId(allDepartments.get(departmentIndex).getId()); break; case 13: int jobLevelIndex = allJobLevels.indexOf(new JobLevel(cellValue)); employee.setJobLevelId(allJobLevels.get(jobLevelIndex).getId()); break; case 14: int positionIndex = allPositions.indexOf(new Position(cellValue)); employee.setPosId(allPositions.get(positionIndex).getId()); break; case 15: employee.setEngageForm(cellValue); break; case 16: employee.setTiptopDegree(cellValue); break; case 17: employee.setSpecialty(cellValue); break; case 18: employee.setSchool(cellValue); break; case 20: employee.setWorkState(cellValue); break; case 21: employee.setEmail(cellValue); break; } break; default: { switch (k) { case 4: employee.setBirthday(cell.getDateCellValue()); break; case 19: employee.setBeginDate(cell.getDateCellValue()); break; case 23: employee.setBeginContract(cell.getDateCellValue()); break; case 24: employee.setEndContract(cell.getDateCellValue()); break; case 22: employee.setContractTerm(cell.getNumericCellValue()); break; case 25: employee.setConversionTime(cell.getDateCellValue()); break; } } break; } } list.add(employee); } } } catch (IOException e) { e.printStackTrace(); } return list; }
Java代码实现Excel表格导出
版权声明:本文为CSDN博主「JavaYuyangLi」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_46020877/article/details/119357549
这篇关于Java代码实现Excel表格导入的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27消息中间件底层原理资料详解
- 2024-11-27RocketMQ底层原理资料详解:新手入门教程
- 2024-11-27MQ底层原理资料详解:新手入门教程
- 2024-11-27MQ项目开发资料入门教程
- 2024-11-27RocketMQ源码资料详解:新手入门教程
- 2024-11-27本地多文件上传简易教程
- 2024-11-26消息中间件源码剖析教程
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器