ExcelController.java 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. package com.template.controller;
  2. import com.template.annotation.PassToken;
  3. import com.template.api.ExcelControllerAPI;
  4. import org.apache.poi.ss.usermodel.DataFormatter;
  5. import org.apache.poi.xssf.usermodel.XSSFCell;
  6. import org.apache.poi.xssf.usermodel.XSSFSheet;
  7. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  8. import org.springframework.web.bind.annotation.RestController;
  9. import java.io.FileInputStream;
  10. import java.io.IOException;
  11. @RestController
  12. public class ExcelController implements ExcelControllerAPI {
  13. /**
  14. * .xlsx格式
  15. * @param
  16. */
  17. @Override
  18. @PassToken
  19. public void toExcel(String fileUrl) {
  20. //创建工作簿对象
  21. XSSFWorkbook xssfWorkbook = null;
  22. try {
  23. xssfWorkbook = new XSSFWorkbook(new FileInputStream(fileUrl));
  24. } catch (IOException e) {
  25. throw new RuntimeException(e);
  26. }
  27. //获取工作簿下sheet的个数
  28. int sheetNum = xssfWorkbook.getNumberOfSheets();
  29. //遍历工作簿中的所有数据
  30. for (int i = 0; i < sheetNum; i++) {
  31. //读取第i个工作表
  32. System.out.println("读取第"+(i+1)+"个sheet");
  33. XSSFSheet sheet = xssfWorkbook.getSheetAt(i);
  34. //获取最后一行的num,即总行数。此处从0开始
  35. int maxRow = sheet.getLastRowNum();
  36. // 从第二行开始获取数据
  37. for (int row = 1; row <= maxRow; row++) {
  38. //获取最后单元格num,即总单元格数 ***注意:此处从1开始计数***
  39. int maxRol = sheet.getRow(row).getLastCellNum();
  40. System.out.println("--------第" + row + "行的数据如下--------");
  41. // for (int rol = 0; rol < maxRol; rol++){
  42. // System.out.print(sheet.getRow(row).getCell(rol) + " ");
  43. // }
  44. DataFormatter dataFormatter = new DataFormatter();
  45. // 获取手机号
  46. XSSFCell cell = sheet.getRow(row).getCell(3);
  47. // 获取的手机号格式有问题需要转换
  48. dataFormatter.addFormat("###########",null);
  49. String phone = dataFormatter.formatCellValue(cell);
  50. // 获取名字
  51. String name = sheet.getRow(row).getCell(1).toString();
  52. // 获取备注
  53. String remarks = sheet.getRow(row).getCell(4).toString();
  54. // 获取性别
  55. String genderName = sheet.getRow(row).getCell(2).toString();
  56. int gender;
  57. if ("女".equals(genderName)) {
  58. gender=1;
  59. }else {
  60. gender=2;
  61. }
  62. // SystemUser systemUser = new SystemUser();
  63. // systemUser.setRoleId(Long.valueOf(row));
  64. // systemUser.setAccountName(name);
  65. // systemUser.setAccountNumber(row+"");
  66. // systemUser.setAccountPassword("123456");
  67. // systemUser.setPhoneNumber(phone);
  68. // systemUser.setEmail("123456@123456");
  69. // systemUser.setRemarks(remarks);
  70. // systemUser.setGender(gender);
  71. // systemUser.setDeleted(0L);
  72. // systemUser.setWechatId("123456789");
  73. // systemUserService.save(systemUser);
  74. }
  75. }
  76. }
  77. }