ExcelUtil.java 2.1 KB

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