Apache POI使用

1.导入坐标

XML 复制代码
        <!-- poi -->
            <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>

2. 测试类

说明:在D盘生成excel文件

java 复制代码
package com.sky.test;

import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;


import java.io.File;
import java.io.FileOutputStream;

/*
 * 使用POI操作Excel文件
 * */
public class POITest {


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

        row.createCell(2).setCellValue("城市");
//        创建一个新行
         row = sheet.createRow(1);
        row.createCell(1).setCellValue("张飒");

        row.createCell(2).setCellValue("成都");
//        创建一个新行
        row = sheet.createRow(2);
        row.createCell(1).setCellValue("李四");

        row.createCell(2).setCellValue("重庆市");

//        输出流将内存的excel文件写入到磁盘
        FileOutputStream out = new FileOutputStream(new File("D:\\mm.xlsx"));
        excel.write(out);
//        关闭资源
        out.close();
        excel.close();
    }

    public static void main(String[] args) throws Exception {
     write();
    }
}

说明:在D盘读取文件

java 复制代码
   /*通过POI读取Excel文件中的内容
    * @throws Exception
    * */
    public  static  void  read() throws  Exception{
        FileInputStream in = new FileInputStream(new File("D:\\mm.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();
    }

    public static void main(String[] args) throws Exception {
//     write();
     read();
    }

3.展示

相关推荐
方圆想当图灵31 分钟前
ScheduledFutureTask 踩坑实录
后端
全栈凯哥44 分钟前
16.Spring Boot 国际化完全指南
java·spring boot·后端
M1A11 小时前
Java集合框架深度解析:LinkedList vs ArrayList 的对决
java·后端
31535669132 小时前
Springboot实现一个接口加密
后端
Linn4 小时前
Spring WebSocket 服务实现的主流方案与最佳实践
spring boot·后端·spring
M1A14 小时前
企业信息化管理(EIM):数字化转型的核心引擎
后端
NE_STOP4 小时前
SpringBoot--如何整体读取多个配置属性及其相关操作
java·spring
我是老孙5 小时前
Spring Boot 应用中,配置的加载优先级
spring boot·后端·pycharm
风象南5 小时前
基于 SpringBoot 的 REST API 与 RPC 调用的统一封装
java·spring boot·后端
陈随易5 小时前
Kimi k2不行?一个小技巧,大幅提高一次成型的概率
前端·后端·程序员