ExcelUtil.java 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package com.fdkankan.manage.util;
  2. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  3. import org.apache.poi.ss.usermodel.*;
  4. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  5. import org.springframework.web.multipart.MultipartFile;
  6. import java.io.IOException;
  7. import java.io.InputStream;
  8. import java.util.ArrayList;
  9. import java.util.HashMap;
  10. import java.util.List;
  11. public class ExcelUtil {
  12. public static List<HashMap<Integer,String>> getExcelRowList(MultipartFile multipartFile) throws IOException {
  13. //行List,也是最终要返回的List
  14. List<HashMap<Integer,String>> rowList=new ArrayList<>();
  15. Workbook workbook=getExcelWorkBook(multipartFile);
  16. Sheet sheet = workbook.getSheetAt(0);
  17. if (sheet == null) {
  18. throw new IOException("创建Sheet失败!");
  19. }
  20. //开始遍历行
  21. for (int i=3;i<= sheet.getLastRowNum();i++){
  22. Row row = sheet.getRow(i);
  23. //列List
  24. HashMap<Integer,String> map = new HashMap<>();
  25. //转换为List数组
  26. for (int cellNum=0;cellNum<= row.getLastCellNum();cellNum++){
  27. Cell cell = row.getCell(cellNum);
  28. if(cell != null){
  29. cell.setCellType(CellType.STRING);
  30. map.put(cellNum,cell.getStringCellValue().trim());
  31. }
  32. }
  33. rowList.add(map);
  34. }
  35. workbook.close();
  36. return rowList;
  37. }
  38. //获取WorkBook对象
  39. private static Workbook getExcelWorkBook(MultipartFile multipartFile) throws IOException {
  40. InputStream inputStream=multipartFile.getInputStream();
  41. String originalFileName=multipartFile.getOriginalFilename();
  42. assert originalFileName != null;
  43. String fileType=originalFileName.substring(originalFileName.lastIndexOf(".")+1);
  44. if (fileType.equalsIgnoreCase("xls")) {
  45. //xls格式
  46. return new HSSFWorkbook(inputStream);
  47. } else {
  48. //xlsx格式
  49. return new XSSFWorkbook(inputStream);
  50. }
  51. }
  52. }