• 使用poi解析Excel文件转化数组形式的集合(List<String[] 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;
        }
  • 相关阅读:
    P2761 软件补丁问题
    CF1335F Robots on a Grid
    [bzoj2088]P3505 [POI2010]TEL-Teleportation
    CF1335E Three Blocks Palindrome
    P3831 [SHOI2012]回家的路
    P4568 [JLOI2011]飞行路线(分层图)
    P4774 [NOI2018]屠龙勇士
    P2480 [SDOI2010]古代猪文
    CF #632 (Div. 2) 对应题号CF1333
    BSGS 和扩展
  • 原文地址:https://www.cnblogs.com/xianshen/p/13094755.html
Copyright © 2020-2023  润新知