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.展示

相关推荐
Yeats_Liao41 分钟前
时序数据库系列(二):InfluxDB安装配置从零搭建
数据库·后端·时序数据库
Yeats_Liao41 分钟前
时序数据库系列(一):InfluxDB入门指南核心概念详解
数据库·后端·时序数据库·db
蓝-萧1 小时前
springboot系列--自动配置原理
java·后端
bobogift2 小时前
【玩转全栈】----Django基本配置和介绍
java·后端
倚栏听风雨2 小时前
Async-Profiler 框架简介
后端
qianbailiulimeng2 小时前
2019阿里java面试题(一)
java·后端
码事漫谈2 小时前
虚函数指针与虚函数表:C++多态的实现奥秘
后端
Moment2 小时前
Cursor 2.0 支持模型并发,我用国产 RWKV 模型实现了一模一样的效果 🤩🤩🤩
前端·后端·openai
码事漫谈2 小时前
写博客实用工具!5分钟使用ShareX实现步骤批量截图
后端
狂炫冰美式2 小时前
QuizPort 1.0 · 让每篇好文都有测验陪跑
前端·后端·面试