使用poi解析Excel文件轉化數組形式的集合(List


1.pom.xml引入jar包

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.17</version>
        </dependency>

2.解析代碼

    /**
     * 解析Excel文件轉化數組形式的集合
     * @param in
     * @return
     */
    public static List<String []> excelToList(InputStream in) {
        List<String[]> strings = new ArrayList<>();
        Workbook workbook = null;
        // 當前讀取行數-0-based
        int currentRowNum = 0;
        try {
            workbook = WorkbookFactory.create(in);
            Sheet sheet = workbook.getSheetAt(0);
            logger.info("sheet name:" + sheet.getSheetName() + ",last rownum:" + sheet.getLastRowNum());
            for (int x = 0; x <= sheet.getLastRowNum(); x++) {
                Row row = sheet.getRow(x);
                currentRowNum = row.getRowNum();
                StringBuffer sb = new StringBuffer();
                //設置單元格類型
                for (int i=0; i< row.getLastCellNum();i++){
                    if(row.getCell(i) != null){
                        row.getCell(i).setCellType(CellType.STRING);
                    }
                    String s = PoiUtils.getStringCellValue(row.getCell(i));
                    sb.append(s);
                    sb.append(",");
                }
                strings.add(sb.toString().substring(0, sb.toString().lastIndexOf(",")).split(","));
            }
        }catch (Exception e){
            logger.error("數據讀取到第"+currentRowNum+"行時失敗");
            e.printStackTrace();
        }finally {
            try {
                if (null != workbook) {
                    workbook.close();
                }
            } catch (Exception e2) {
            }
            try {
                if (null != in) {
                    in.close();
                }
            } catch (Exception e2) {
            }
        }
        return strings;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM