SpringBootWeb 篇-入门了解 Apache POI 使用方法
创始人
2025-01-15 06:34:07
0

🔥博客主页: 【小扳_-CSDN博客】
❤感谢大家点赞👍收藏⭐评论✍

文章目录

        1.0 Apache POI 概述

        2.0 使用 Apache POI 读写 Excel 文件

        2.1 写入 Excel 文件

        2.2 写入 Excel 文件代码演示

        2.3 读取 Excel 文件

        2.4 读取 Excel 文件代码演示


        1.0 Apache POI 概述

        Apache POI 是一个处理 Miscrosoft Office 各种文件格式的开源项目。简单来说就是,开源使用 POI 在 Java 程序中对 Miscrosoft Office 各种文件进行读写操作。

        一般情况下, POI 都是用于操作 Excel 文件。

        2.0 使用 Apache POI 读写 Excel 文件

        2.1 写入 Excel 文件

        首先添加 Apache POI 依赖:

     org.apache.poi     poi     3.16       org.apache.poi     poi-ooxml     3.16 

具体用到的方法:

        1)创建 XSSFWorkbook对象:

        使用 XSSFWorkbook 创建 XLSX 格式的 Excel 文件。

Workbook workbook = new XSSFWorkbook();

        2)创建工作表对象:

Sheet sheet = workbook.createSheet("Sheet1"); // 创建新的工作表 

        3)创建行和单元格对象:

Row row = sheet.createRow(0); // 创建新的行 Cell cell = row.createCell(0); // 创建新的单元格

        4)设置具体的值:

cell.setCellValue("Hello, World!");//在单元格中写入的内容

        5)将在内存创建的 Excel 的文件保存到磁盘中:

FileOutputStream file = new FileOutputStream("example.xlsx"); workbook.write(file);

        2.2 写入 Excel 文件代码演示

import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest;  import java.io.File; import java.io.FileOutputStream; import java.io.IOException;  @SpringBootTest(classes = {demo.demo2.class})  public class demo2 {      /**      * 写入 Excel 文件操作      */     public void write() throws IOException {          //创建 XSSFWorkbook 对象         XSSFWorkbook workbook = new XSSFWorkbook();         //创建 Sheet 对象,指定名称 sheet1         XSSFSheet sheet = workbook.createSheet("sheet1");         //创建行,创建第二行的行对象         XSSFRow row = sheet.createRow(1);         //创建单元格,创建第二格单元格对象         XSSFCell cell = row.createCell(1);         //设置具体的值         cell.setCellValue("姓名");          //创建单元格,创建第三格单元格对象         XSSFCell cell1 = row.createCell(2);         //设置具体的值         cell1.setCellValue("性别");          //创建第三行对象         XSSFRow row1 = sheet.createRow(2);         //创建第二格对象         XSSFCell cell2 = row1.createCell(1);         cell2.setCellValue("小板");         //创建第三格对象         XSSFCell cell3 = row1.createCell(2);         cell3.setCellValue("男");          //创建第四行对象         XSSFRow row2 = sheet.createRow(3);         //创建第二格对象         XSSFCell cell4 = row2.createCell(1);         //设置具体的值         cell4.setCellValue("童童");         //创建第三格对象         XSSFCell cell5 = row2.createCell(2);         cell5.setCellValue("女");          //将该 Excel 从内存中放到磁盘中         //首先创建存放的文件         FileOutputStream out = new FileOutputStream(new File("D:\\software\\code\\example.xlsx"));         workbook.write(out);          //最后需要关闭资源         out.close();         workbook.close();      }     @Test     public void test11() throws IOException {         write();     } }

运行结果:

        2.3 读取 Excel 文件

        首先需要添加 POI 库的依赖,在前面写入 Excel 文件中已经添加了,这里就没有必要继续添加依赖了。

     org.apache.poi     poi     3.16       org.apache.poi     poi-ooxml     3.16 

相关的方法:

        1)指定读取的 Excel 文件:

        通过 new File("路径") Flie 对象作为参数来指定要读取的 Excel 文件。

FileInputStream file = new FileInputStream(new File("sample.xlsx")); Workbook workbook = WorkbookFactory.create(file);

        2)获取 Sheet 对象:

        根据索引或者名字来获取指定的 Sheet 对象。

//通过名字来获取 XSSFSheet sheet1 = workbook.getSheet("指定名字来获取"); //通过索引来获取 XSSFSheet sheet2 = workbook.getSheetAt(0);

        3)获取 Row 对象

        根据索引来获取 Row 对象。

XSSFRow row = sheet.getRow(1);

        获取 Sheet 最后一行的行数。

int lastRowNum = sheet.getLastRowNum();

        4)获取单元格对象

        根据索引来获取 Cell 对象。

XSSFCell cell = row.getCell(1);

        5)获取到单元格中的值

        通过 cell.getStringCellValue() 方法来获取单元格中的值。

String stringCellValue = cell.getStringCellValue();

        2.4 读取 Excel 文件代码演示

    public void read() throws Exception {         //创建字节输入流文件对象         File file = new File("D:\\software\\code\\example.xlsx");         FileInputStream in = new FileInputStream(file);          //再进一步封装         XSSFWorkbook workbook = new XSSFWorkbook(in);         //获取 Sheet 对象,根据索引获取         XSSFSheet sheet = workbook.getSheetAt(0);          //获取Row对象         //获取最后一行的行数         int lastRowNum = sheet.getLastRowNum();         for (int i = 1; i <= lastRowNum ; i++) {             XSSFRow row = sheet.getRow(i);             String stringCellValue1 = row.getCell(1).getStringCellValue();             String stringCellValue2 = row.getCell(2).getStringCellValue();             System.out.println(stringCellValue1 + " " + stringCellValue2);         }                  //最后关闭资源         workbook.close();         in.close();     }      @Test     public void test12() throws Exception {         read();     }

运行结果:

相关内容

热门资讯

绝活儿辅助!广西老友玩老是输怎... 绝活儿辅助!广西老友玩老是输怎么办(辅助挂)都是真的有辅助app(讲解有挂)在进入广西老友玩老是输怎...
法门辅助!福建13水插件(辅助... 法门辅助!福建13水插件(辅助挂)一贯是有辅助技巧(有挂技术)1、许多玩家不知道福建13水插件辅助怎...
办法辅助!潮友会app下载官方... 办法辅助!潮友会app下载官方辅助器(辅助挂)真是真的是有辅助app(有挂教程)该软件可以轻松地帮助...
妙招辅助!邯郸胡乐挂辅助(辅助... 妙招辅助!邯郸胡乐挂辅助(辅助挂)好像存在有辅助插件(有挂方略)1、上手简单,内置详细流程视频教学,...
教程书辅助!乐酷辅助(辅助挂)... 教程书辅助!乐酷辅助(辅助挂)其实存在有辅助脚本(有挂细节)乐酷辅助能透视中分为三种模型:乐酷辅助模...
学习辅助!决战卡五星辅助(辅助... 学习辅助!决战卡五星辅助(辅助挂)本来真的是有辅助软件(有人有挂)学习辅助!决战卡五星辅助(辅助挂)...
绝活辅助!边锋嘉兴麻将辅助器(... 绝活辅助!边锋嘉兴麻将辅助器(辅助挂)真是真的有辅助神器(新版有挂)1、边锋嘉兴麻将辅助器公共底牌简...
举措辅助!枫叶辅助器(辅助挂)... 举措辅助!枫叶辅助器(辅助挂)本来存在有辅助技巧(竟然有挂)1、下载好枫叶辅助器正确养号方法之后点击...
讲义辅助!点我达辅助(辅助挂)... 讲义辅助!点我达辅助(辅助挂)一直存在有辅助技巧(有人有挂)1、点我达辅助辅助器安装包、点我达辅助辅...
模块辅助!威信茶馆有挂的吗(辅... 模块辅助!威信茶馆有挂的吗(辅助挂)一直真的是有辅助脚本(揭秘有挂)1、玩家可以在威信茶馆有挂的吗线...