POI技术解析xls/xlsx

1.文件上传机制采用struts2,来接收上传的文件
    private File file;

    public void setFile(File file) {
        this.file = file;
    }

2.实现Excel文件解析

jar包导入(这种jar包导入基于maven项目管理)
        <!-- Excel解析工具类  -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.11</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.11</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>3.11</version>
        </dependency>

表格里数据的格式:


代码实现表格数据解析
public void resolveExcel() {
        //1.加载excal文件对象
        Workbook workbook=null;
        try {
            workbook = WorkbookFactory.create(new FileInputStream(file));
        } catch (Exception e) {
            e.printStackTrace();
        }
        //2.读取第一个sheet
        Sheet sheet = workbook.getSheetAt(0);
        //3.读取sheet中的每一行
        for (Row row : sheet) {
            //跳过第一行表头数据(如果有表头就跳过,没有则不用)
            if (row.getRowNum()==0) {
                continue;
            }
            //跳过空行
            if (row.getCell(0)==null || StringUtils.isBlank(row.getCell(0).getStringCellValue())) {
                continue;
            }
            //分别获取每一列的数据
            String areaCode = row.getCell(0).getStringCellValue();
            String province = row.getCell(1).getStringCellValue();
            String city = row.getCell(2).getStringCellValue();
            String area = row.getCell(3).getStringCellValue();
            String postcode = row.getCell(4).getStringCellValue();
   
            //接下来要对得到的数据怎么操作,随业务而定了!可以先打印测试一下
        }
    }




posted @ 2018-04-08 16:36  zhaoxuan734  阅读(167)  评论(0编辑  收藏  举报