当前位置: 首页 > article >正文

Apache POI 2024/10/2

导入Apache POI的maven坐标

通过POI向Excel文件写入文件内容

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.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

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

    /**
     * 通过POI创建Excel文件并且写入文件内容
     */
    public static void write() throws IOException {
        //在内存中创建一个Excel文件
        XSSFWorkbook excel = new XSSFWorkbook();
        //在Excel文件中创建一个sheet页
        XSSFSheet sheet = excel.createSheet("info");
        //在sheet页创建行对象
        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();
    }
    public static void main(String[] args) throws IOException {
        write();
    }
}

运行结果

多了info.xlsx文件

通过POI向Excel文件写入文件内容

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.*;

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

    /**
     * 通过POI创建Excel文件并且写入文件内容
     */
    public static void write() throws IOException {
        //在内存中创建一个Excel文件
        XSSFWorkbook excel = new XSSFWorkbook();
        //在Excel文件中创建一个sheet页
        XSSFSheet sheet = excel.createSheet("info");
        //在sheet页创建行对象
        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();
    }

    /**
     * 通过POI创建Excel文件并且读取文件内容
     */
    public static void read() throws IOException {
        FileInputStream 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();
    }

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

运行结果

 


http://www.kler.cn/news/335364.html

相关文章:

  • 【TypeScript学习】TypeScript基础学习总结一
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-05
  • 在 Ubuntu 18.04 上安装 Syncthing
  • Mac通过ssh连接工具远程登录服务器( Royal TSX安装及使用)
  • sql-labs靶场第九关测试报告
  • GiliSoft Video Editor Pro专业视频编辑工具-视频剪辑/合并/字幕于一身的编辑器-供大家学习研究参考
  • 硬件面试(一)
  • JavaScript for循环语句
  • Spring Boot 2.1.6.RELEASE 中,javax.persistence缺失问题
  • Star 3w+,向更安全、更泛化、更云原生的 Nacos3.0 演进
  • Python 时间日期模块编码模板(时间日期对象基本操作、时间日期对象格式化与解析)
  • Java语法-类和对象之抽象类和接口
  • node启动websocket保持后台一直运行
  • Linux命令:用于管理 Linux 系统中用户组的命令行工具gpasswd详解
  • 【深度学习】—线性回归 线性回归的基本元素 线性模型 损失函数 解析解 随机梯度下降
  • kaggle实战3RossmanStore商店销售额预测XgBoost解决回归问题案例1
  • 在 Ubuntu 安装 Python3.7(没有弯路)
  • Qt之TCP收发图片的例子
  • 大模型生成时的参数设置怎么调整?
  • 9--苍穹外卖-SpringBoot项目中Redis的介绍及其使用实例 详解