ExcelController.java 3.6 KB

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