【基于POI操纵Ecxel】

Apache POI的使用

Apache POI 是一个用于处理 Microsoft Office 文档的 Java 库。使用 Apache POI,你可以创建、读取和修改 Excel、Word 和 PowerPoint 文档。它提供了一组 API,使得在 Java 程序中可以方便地操作这些文档。你可以使用 Apache POI 创建新的文档,读取现有的文档内容,修改文档的结构和样式,以及执行其他与 Office 文档相关的操作。


第一步:引入依赖

导入Apache POI的maven坐标。

<dependency>
     <groupId>org.apache.poi</groupId>
     <artifactId>poi</artifactId>
     <version>${poi}</version>
</dependency>
<dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-ooxml</artifactId>
      <version>${poi}</version>
</dependency>

第二步: 进行写操作

Demo:进行创建Excel表格,生成Sheet页,书写内容,将文件写入磁盘。

代码如下:

 	/**
     * 通过POI创建Excel文件并且写入文件内容
     */
    public static void write() throws Exception{
        //在内存中创建一个Excel文件
        XSSFWorkbook excel = new XSSFWorkbook();
        //在Excel文件中创建一个Sheet页
        XSSFSheet sheet = excel.createSheet("info");
        //在Sheet中创建行对象,rownum编号从0开始
        XSSFRow row = sheet.createRow(1);
        //创建单元格并且写入文件内容
        row.createCell(1).setCellValue("姓名");
        row.createCell(2).setCellValue("城市");

        //创建一个新行
        row = sheet.createRow(2);
        row.createCell(1).setCellValue("张三");
        row.createCell(2).setCellValue("北京");

        row = sheet.createRow(3);
        row.createCell(1).setCellValue("李四");
        row.createCell(2).setCellValue("南京");

        //通过输出流将内存中的Excel文件写入到磁盘
        FileOutputStream out = new FileOutputStream(new File("D:\\info.xlsx"));
        excel.write(out);

        //关闭资源
        out.close();
        excel.close();
    }

运行结果:
在这里插入图片描述

总结:根据运行结果来看,apache poi的代码可读性很强,跟我们手动创建Excel表格差不多,首先,1.new XSSFWorkbook 创建Excel 2.excel.createSheet 创建Sheet页 3.sheet.createRow(index) 获取sheet里面点的index行(这里的index是从0开始计算) 4.row.createCell(index).setCellValue(“value”) 给index行里面的index列设置value值 5.通过IO流将excel写入到指定磁盘。

进行读操作

Demo:读取上面那个写入案例的内容。

代码如下:

    /**
     * 通过POI读取Excel文件中的内容
     * @throws Exception
     */
    public static void read() throws Exception{
        InputStream in = new FileInputStream(new File("D:\\info.xlsx"));

        //读取磁盘上已经存在的Excel文件
        XSSFWorkbook excel = new XSSFWorkbook(in);
        //读取Excel文件中的第一个Sheet页
        XSSFSheet sheet = excel.getSheetAt(0);

        //获取Sheet中最后一行的行号
        int lastRowNum = sheet.getLastRowNum();

        for (int i = 1; i <= lastRowNum ; i++) {
            //获得某一行
            XSSFRow row = sheet.getRow(i);
            //获得单元格对象
            String cellValue1 = row.getCell(1).getStringCellValue();
            String cellValue2 = row.getCell(2).getStringCellValue();
            System.out.println(cellValue1 + " " + cellValue2);
        }

        //关闭资源
        in.close();
        excel.close();
    }

运行结果:
在这里插入图片描述

总结:读跟写是差不多的,apche poi的可读性代码很强,从代码可以看出,读也是选好需要读的excel的磁盘地址,然后,获取指定的sheet页,然后,通过行号跟列号来指定需要读取的内容。

导出数据报表

现在有一个项目(苍穹外卖),我们要实现数据报表导出,我们在做这些数据报表到处是,可以先把数据模板写好,然后通过程序填写数据。

在这里插入图片描述
1.导入模板
在这里插入图片描述
2.加载模板

//2. 通过POI将数据写入到Excel文件中
InputStream in = this.getClass().getClassLoader()
                .getResourceAsStream("template/运营数据报表模板.xlsx");

3.创建Excel

//基于模板文件创建一个新的Excel文件
XSSFWorkbook excel = new XSSFWorkbook(in);

4.获取Sheet

//获取表格文件的Sheet页
XSSFSheet sheet = excel.getSheet("Sheet1");

5.填写数据
在这里插入图片描述
6.将Excel下载到客户端浏览器

 //3. 通过输出流将Excel文件下载到客户端浏览器
            ServletOutputStream out = response.getOutputStream();
            excel.write(out);

效果展示
在这里插入图片描述
总结:

以上就是apche poi的基本使用了,主要是介绍了poi对excel的创建,然后生成sheet页,在对表格进行操作,填写数据,还有就是对excel表格内容的获取。这个技术,跟我们平时操作excel表格方式差不多,代码可读性也很好。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值