欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java解析Excel之POI(一)

程序员文章站 2022-04-29 19:13:25
引入依赖: 解析代码: 参照: https://www.cnblogs.com/gdwkong/p/8669220.html ......

引入依赖:

<dependency>
    <groupid>org.apache.poi</groupid>
    <artifactid>poi</artifactid>
    <version>4.0.1</version>
</dependency>

解析代码:

public static void main(string[] args) {

        // 【读取】------------------------------------------------------------
        // 从 template.xls 文件中读取数据,并保存到 arraylist<area> 中后打印输出。
        arraylist<area> list = new arraylist<area>();
        try {
            // 1、获取文件输入流
            inputstream inputstream = new fileinputstream("/users/hrvy/temp/template.xls");
            // 2、获取excel工作簿对象
            hssfworkbook workbook = new hssfworkbook(inputstream);
            // 3、得到excel工作表对象
            hssfsheet sheetat = workbook.getsheetat(0);
            // 4、循环读取表格数据
            for (row row : sheetat) {
                // 首行(即表头)不读取
                if (row.getrownum() == 0) {
                    continue;
                }
                // 读取当前行中单元格数据,索引从0开始
                string country = row.getcell(0).getstringcellvalue();
                string province = row.getcell(1).getstringcellvalue();
                string city = row.getcell(2).getstringcellvalue();

                area area = new area();
                area.setcountry(country);
                area.setprovince(province);
                area.setcity(city);
                list.add(area);
            }
            system.out.println(list.tostring());
            // 5、关闭流
            workbook.close();
        } catch (ioexception e) {
            e.printstacktrace();
        }

        // 【写出】------------------------------------------------------------
        // 新建一个 template_copy.xls 文件,并将 arraylist<area> 中的数据写入 template_copy.xls 文件
        // 1.在内存中创建一个excel文件
        hssfworkbook workbook = new hssfworkbook();
        // 2.创建工作簿
        hssfsheet sheet = workbook.createsheet();
        // 3.创建标题行
        hssfrow titlerrow = sheet.createrow(0);
        titlerrow.createcell(0).setcellvalue("国家copy");
        titlerrow.createcell(1).setcellvalue("省份copy");
        titlerrow.createcell(2).setcellvalue("城市copy");
        // 4.遍历数据,创建数据行
        for (area area : list) {
            // 获取最后一行的行号
            int lastrownum = sheet.getlastrownum();
            // 添加新行
            hssfrow datarow = sheet.createrow(lastrownum + 1);
            datarow.createcell(0).setcellvalue(area.getcountry());
            datarow.createcell(1).setcellvalue(area.getprovince());
            datarow.createcell(2).setcellvalue(area.getcity());
        }
        // 5.创建文件名
        string filename = "template_copy.xls";
        // 6.获取输出流对象
        outputstream outputstream;
        try {
            outputstream = new fileoutputstream("/users/hrvy/temp/" + filename);
            // 7.写出文件,关闭流
            workbook.write(outputstream);
            workbook.close();
        } catch (filenotfoundexception e) {
            e.printstacktrace();
        } catch (ioexception e) {
            e.printstacktrace();
        }
        
    }

 

 

参照:

https://www.cnblogs.com/gdwkong/p/8669220.html