import org.apache.poi.ss.usermodel.*; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class TEST { //读取excel表的数据 public static List<Map<Integer,Object>> readWord(String path) throws IOException { List<Map<Integer,Object>> list=new ArrayList<>(); Workbook workbook = null; try { // 读取Excel文件 InputStream inputStream = new FileInputStream(path); workbook = WorkbookFactory.create(inputStream); inputStream.close(); } catch (Exception e) { e.printStackTrace(); } // 循环工作表 for (int numSheet = 0; numSheet < workbook.getNumberOfSheets(); numSheet++) { Sheet hssfSheet = workbook.getSheetAt(numSheet); if (hssfSheet == null) { continue; } // 循环行 rowNum第几行开始读取 从0开始就是从第一行开始 for (int rowNum = 0; rowNum <= hssfSheet.getLastRowNum(); rowNum++) { Map<Integer,Object> map=new HashMap<>(); Row hssfRow = hssfSheet.getRow(rowNum); if (hssfRow == null) { continue; } System.out.println(" " /*hssfRow.getLastCellNum()*/);//列的数量 for (int i = 0; i <hssfRow.getLastCellNum() ; i++) { if(hssfRow.getCell(i)!=null){ System.out.print(getCellVal(hssfRow.getCell(i))+" "); map.put(i,getCellVal(hssfRow.getCell(i))); }else{ map.put(i," "); System.out.print("--- "); } } list.add(map); } } return list; } /** * CELL_TYPE_NUMERIC 数值型 0 * CELL_TYPE_STRING 字符串型 1 * CELL_TYPE_FORMULA 公式型 2 * CELL_TYPE_BLANK 空值 3 * CELL_TYPE_BOOLEAN 布尔型 4 * CELL_TYPE_ERROR 错误 * @param cel * @return */ public static String getCellVal(Cell cel) { if(cel.getCellType() == Cell.CELL_TYPE_ERROR) { return " "; } if(cel.getCellType() == Cell.CELL_TYPE_BLANK) { return " "; } if(cel.getCellType() == Cell.CELL_TYPE_STRING) { return cel.getRichStringCellValue().getString(); } if(cel.getCellType() == Cell.CELL_TYPE_NUMERIC) { String str=cel.getNumericCellValue()+""; if(null != str && str.indexOf(".") > 0){ str = str.replaceAll("0+?$", "");//去掉多余的0 str=str.replaceAll("[.]$", "");//如最后一位是.则去掉 } return str; } if(cel.getCellType() == Cell.CELL_TYPE_BOOLEAN) { return cel.getBooleanCellValue() + ""; } if(cel.getCellType() == Cell.CELL_TYPE_FORMULA) { return cel.getCellFormula() + ""; } return cel.toString(); } public static void main(String[] args) throws IOException { String path="C:\\Users\\Administrator\\Desktop\\新建 XLSX 工作表.xlsx"; List<Map<Integer,Object>> list=readWord(path); List<demo1> demo1s=new ArrayList<>(); for (int i = 0; i <list.size() ; i++) { demo1 demo2=new demo1(); for (int j = 0; j <list.get(i).size() ; j++) { if(j==0){ demo2.setName1(list.get(i).get(j).toString()); }else if(j==1){ demo2.setName2(list.get(i).get(j).toString()); } else if(j==2){ demo2.setName3(list.get(i).get(j).toString()); } else if(j==3){ demo2.setName4(list.get(i).get(j).toString()); } else if(j==4){ demo2.setName5(list.get(i).get(j).toString()); } else if(j==5){ demo2.setName6(list.get(i).get(j).toString()); } else if(j==6){ demo2.setName7(list.get(i).get(j).toString()); } else if(j==7){ demo2.setName8(list.get(i).get(j).toString()); } else if(j==8){ demo2.setName9(list.get(i).get(j).toString()); } else if(j==9){ demo2.setName10(list.get(i).get(j).toString()); } } demo1s.add(demo2); } System.out.println(" "); System.out.println(demo1s.toString()); for (int i = 0; i < demo1s.size();i++) { System.out.println(demo1s.get(i).getName1()); } } static class demo1{ private String name1; private String name2; private String name3; private String name4; private String name5; private String name6; private String name7; private String name8; private String name9; private String name10; public String getName1() { return name1; } public void setName1(String name1) { this.name1 = name1; } public String getName2() { return name2; } public void setName2(String name2) { this.name2 = name2; } public String getName3() { return name3; } public void setName3(String name3) { this.name3 = name3; } public String getName4() { return name4; } public void setName4(String name4) { this.name4 = name4; } public String getName5() { return name5; } public void setName5(String name5) { this.name5 = name5; } public String getName6() { return name6; } public void setName6(String name6) { this.name6 = name6; } public String getName7() { return name7; } public void setName7(String name7) { this.name7 = name7; } public String getName8() { return name8; } public void setName8(String name8) { this.name8 = name8; } public String getName9() { return name9; } public void setName9(String name9) { this.name9 = name9; } public String getName10() { return name10; } public void setName10(String name10) { this.name10 = name10; } } }
java读取excel并存入泛型集合
最新推荐文章于 2022-12-27 22:57:11 发布