码迷,mamicode.com
首页 > 其他好文 > 详细

POI技术解析xls/xlsx

时间:2018-04-08 18:12:28      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:back   puts   excel   pid   文件解析   pen   wrap   管理   font   

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

标签:back   puts   excel   pid   文件解析   pen   wrap   管理   font   

原文地址:https://www.cnblogs.com/zhaoxuan734/p/8745826.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!