java读取excel并存入泛型集合

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;
        }
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值