POI技术解析xls/xlsx

Posted zhaoxuan734

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POI技术解析xls/xlsx相关的知识,希望对你有一定的参考价值。

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

    public void setFile(File file) {
        this.file = file;
    }
x
 
1
    private File file;
2
3
    public void setFile(File file) {
4
        this.file = file;
5
    }

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>
x
1
        <!-- Excel解析工具类  -->
2
        <dependency>
3
            <groupId>org.apache.poi</groupId>
4
            <artifactId>poi</artifactId>
5
            <version>3.11</version>
6
        </dependency>
7
        <dependency>
8
            <groupId>org.apache.poi</groupId>
9
            <artifactId>poi-ooxml</artifactId>
10
            <version>3.11</version>
11
        </dependency>
12
        <dependency>
13
            <groupId>org.apache.poi</groupId>
14
            <artifactId>poi-ooxml-schemas</artifactId>
15
            <version>3.11</version>
16
        </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();
   
            //接下来要对得到的数据怎么操作,随业务而定了!可以先打印测试一下
        }
    }
30
 
1
public void resolveExcel() {
2
        //1.加载excal文件对象
3
        Workbook workbook=null;
4
        try {
5
            workbook = WorkbookFactory.create(new FileInputStream(file));
6
        } catch (Exception e) {
7
            e.printStackTrace();
8
        }
9
        //2.读取第一个sheet
10
        Sheet sheet = workbook.getSheetAt(0);
11
        //3.读取sheet中的每一行
12
        for (Row row : sheet) {
13
            //跳过第一行表头数据(如果有表头就跳过,没有则不用)
14
            if (row.getRowNum()==0) {
15
                continue;
16
            }
17
            //跳过空行
18
            if (row.getCell(0)==null || StringUtils.isBlank(row.getCell(0).getStringCellValue())) {
19
                continue;
20
            }
21
            //分别获取每一列的数据
22
            String areaCode = row.getCell(0).getStringCellValue();
23
            String province = row.getCell(1).getStringCellValue();
24
            String city = row.getCell(2).getStringCellValue();
25
            String area = row.getCell(3).getStringCellValue();
26
            String postcode = row.getCell(4).getStringCellValue();
27
   
28
            //接下来要对得到的数据怎么操作,随业务而定了!可以先打印测试一下
29
        }
30
    }













以上是关于POI技术解析xls/xlsx的主要内容,如果未能解决你的问题,请参考以下文章

java读取txt/pdf/xls/xlsx/doc/docx/ppt/pptx

POI读取excel工具类(xls,xlsx通用)

Java实现文件批量导入导出实例(兼容xls,xlsx)

怎样在Android中解析doc,docx,xls,xlsx格式文

怎样在Android中解析doc,docx,xls,xlsx格式文

JS-XLS/X读取和解析Excel表格文件(xls/xlsx)的JavaScript插件