【JAVA实战】如何使用 Apache POI 在 Java 中写入 Excel 文件

server/2025/2/1 10:13:56/

大家好!🌟 在这篇文章中,我们将带你深入学习如何使用 Apache POI 在 Java 中编写 Excel 文件的技巧!📊📚 如果你是 Java 开发者,或者正在探索如何处理 Excel 文件的数据,那么这篇文章绝对不容错过!🚀

在这里,我们不仅仅是介绍基础的 Excel 文件写入方法,还会通过详细的步骤和代码示例,帮助你快速上手。✨ 通过本篇文章,你将掌握如何创建 Excel 文件、如何插入数据以及如何使用 Apache POI 简单而高效地操作 Excel 文件!📑💻

如果你觉得这篇文章对你有帮助,请不要忘记点赞👍,收藏📌,并关注我们获取更多技术分享!还可以在下方评论📝,和我们分享你的学习心得和问题!💬

 

一.准备工作 

关于 Apache POI 项目

Apache POI 项目的使命是创建和维护 Java API,以操作基于 Office Open XML 标准(OOXML)和 Microsoft 的 OLE 2 复合文档格式(OLE2)的各种文件格式。简而言之,您可以使用 Java 读取和写入 MS Excel 文件。

在 Java 中读写 Excel 时,您会遇到两个前缀:

HSSF:用于处理 2003 或更早版本的 Excel 文件(.xls)。一些带有 HSSF 前缀的类包括 HSSFWorkbook、HSSFSheet、HSSFRow 和 HSSFCell。

XSSF:用于处理 2007 或更高版本的 Excel 文件(.xlsx)。一些带有 XSSF 前缀的类包括 XSSFWorkbook、XSSFSheet、XSSFRow 和 XSSFCell。

以下是您需要了解的一些类:

Workbook:这是表示 Excel 工作簿的高级类。

Sheet:这是表示 Excel 工作表的高级类。

Row:这是表示 Excel 行的高级类。它具有与行相关的方法。

Cell:这是表示单个 Excel 单元格的高级类。它具有与单元格相关的方法,例如:getDataType()。

 

依赖项

如果您使用 Maven,您需要在 pom.xml 中添加以下依赖项。

<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.13</version>
</dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.13</version>
</dependency>

如果您没有使用 Maven,则需要将以下 JAR 文件添加到类路径中。

  • poi-3.13.jar
  • commons-codec-1.9.jar
  • poi-ooxml-3.13.jar
  • poi-ooxml-schemas-3.13.jar
  • xmlbeans-2.6.0.jar
  • stax-api-1.0.1.jar

二.使用 POI 写入 Excel 文件的步骤

1.创建一个空白工作簿:

XSSFWorkbook workbook = new XSSFWorkbook();

 

2.创建一个工作表并传递工作表名称:

XSSFSheet sheet = workbook.createSheet("Country");

 

3.创建一行:

Row row = sheet.createRow(rownum++);

 

4.创建单元格,设置其值并将单元格添加到上述行:

Cell cell = row.createCell(cellnum++);
if (obj instanceof String) cell.setCellValue((String) obj);
else if (obj instanceof Double) cell.setCellValue((Double) obj);
else if (obj instanceof Integer) cell.setCellValue((Integer) obj);

 

5.重复步骤 3 和 4,直到您有数据。

三.java实现代码

我们将编写名为“CountriesDetails.xlsx”的 Excel 文件。

请创建 WriteExcelMain.java,并添加以下代码。

java">// 引入所需的包
package org.arpit.java2blog;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;// 引入 Apache POI 库中的相关类
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;public class WriteExcelMain {// 主方法,程序入口public static void main(String[] args) throws IOException {writeFileUsingPOI();  // 调用写文件的方法}// 定义写入 Excel 文件的方法public static void writeFileUsingPOI() throws IOException {// 创建一个空的工作簿XSSFWorkbook workbook = new XSSFWorkbook();// 创建一个空的工作表,并命名为 "Country"XSSFSheet sheet = workbook.createSheet("Country");// 创建一个数据集合,包含一些示例数据ArrayList<Object[]> data = new ArrayList<Object[]>();data.add(new String[]{"Country", "Capital", "Population"}); // 添加标题行data.add(new Object[]{"India", "Delhi", 10000}); // 添加数据行data.add(new Object[]{"France", "Paris", 40000});data.add(new Object[]{"Germany", "Berlin", 20000});data.add(new Object[]{"England", "London", 30000});// 遍历数据集合,并将每一行数据写入 Excel 工作表int rownum = 0;for (Object[] countries : data) {// 创建行并设置行号Row row = sheet.createRow(rownum++);int cellnum = 0;// 遍历每一行的数据并创建单元格for (Object obj : countries) {Cell cell = row.createCell(cellnum++);// 根据数据类型设置单元格的值if (obj instanceof String)cell.setCellValue((String) obj);  // 如果数据是字符串,设置为字符串else if (obj instanceof Double)cell.setCellValue((Double) obj);  // 如果数据是 Double 类型,设置为数字else if (obj instanceof Integer)cell.setCellValue((Integer) obj);  // 如果数据是 Integer 类型,设置为数字}}// 将工作簿写入文件系统try {// 创建输出流,将数据写入 "CountriesDetails.xlsx" 文件FileOutputStream out = new FileOutputStream(new File("CountriesDetails.xlsx"));workbook.write(out);  // 写入数据out.close();  // 关闭输出流System.out.println("CountriesDetails.xlsx has been created successfully");  // 输出提示信息} catch (Exception e) {e.printStackTrace();  // 异常处理} finally {// 最后关闭工作簿workbook.close();}}}

当您运行上述程序时,您将得到以下输出:

CountriesDetails.xlsx has been created successfully

现在,让我们查看 CountriesDetails.xlsx 文件的内容。

 

 

在本篇文章中,我们详细介绍了如何使用 Apache POI 在 Java 中创建和写入 Excel 文件。通过几个简单的步骤和示例代码,你学会了如何创建一个空白的 Excel 工作簿、添加数据并将其保存到文件中。我们还介绍了 POI 库的基本使用,如何根据不同的 Excel 文件版本选择适当的前缀(HSSF 和 XSSF),并提供了 Maven 和非 Maven 项目的依赖项设置。

通过这些步骤,你将能够轻松地在 Java 项目中处理 Excel 文件,实现数据的导入、导出以及格式化等操作。无论你是进行数据分析还是生成报表,这些知识都能大大提升你的开发效率。👨‍💻📊


🎉 感谢大家阅读到这里! 🎉 如果这篇文章对你有所帮助,请给我们一个 点赞👍,并 收藏📌!如果你想看到更多类似的技术分享,不要忘记点击 关注👀!如果你有任何问题或想法,欢迎在评论区留言📝,我们非常期待与你的互动!🚀

别忘了分享给你的朋友们,让更多人受益哦!😉


http://www.ppmy.cn/server/164041.html

相关文章

【狂热算法篇】探秘图论之Dijkstra 算法:穿越图的迷宫的最短路径力量(通俗易懂版)

羑悻的小杀马特.-CSDN博客羑悻的小杀马特.擅长C/C题海汇总,AI学习,c的不归之路,等方面的知识,羑悻的小杀马特.关注算法,c,c语言,青少年编程领域.https://blog.csdn.net/2401_82648291?typebbshttps://blog.csdn.net/2401_82648291?typebbshttps://blog.csdn.net/2401_8264829…

MySQL注入中load_file()函数的使用

前言 在Msql注入中&#xff0c;load_file()函数在获得webshell以及提权过程中起着十分重要的作用&#xff0c;常被用来读取各种配置文件 而load_file函数只有在满足两个条件的情况下才可以使用&#xff1a; 文件权限&#xff1a;chmod ax pathtofile 文件大小&#xff1a;必须…

python 语音识别

目录 一、语音识别 二、代码实践 2.1 使用vosk三方库 2.2 使用SpeechRecognition 2.3 使用Whisper 一、语音识别 今天识别了别人做的这个app,觉得虽然是个日记app 但是用来学英语也挺好的,能进行语音识别,然后矫正语法,自己说的时候 ,实在不知道怎么说可以先乱说,然…

为大模型提供webui界面的利器:Open WebUI 完全本地离线部署deepseek r1

为大模型提供webui界面的利器&#xff1a;Open WebUI Open WebUI的官网&#xff1a;&#x1f3e1; Home | Open WebUI 开源代码&#xff1a;WeTab 新标签页 Open WebUI是一个可扩展、功能丰富、用户友好的自托管AI平台&#xff0c;旨在完全离线运行。它支持各种LLM运行程序&am…

Java小白入门教程:三种注释+快捷方式

目录 一、单行注释 快捷方式&#xff1a;选中要注释的内容,按键盘的 Ctrl / 二、多行注释 快捷方式&#xff1a;选中要注释的内容,按键盘的 Ctrl Shift / 三、文档注释 快捷方式&#xff1a;在类名或者方法名上输入/**回车 一、单行注释 // 单行注释的内容 快捷方式&…

ReUtil- 一个强大的正则表达式工具库

正则表达式是文本处理中不可或缺的工具&#xff0c;它能够帮助我们高效地进行字符串匹配、替换和提取等操作。在Java开发中&#xff0c;Hutool库提供了一个名为ReUtil的正则工具类&#xff0c;极大地简化了正则表达式的使用。本文将详细介绍ReUtil类的功能及其应用场景。 ReUt…

Spring Boot 实现文件上传和下载

文章目录 Spring Boot 实现文件上传和下载一、引言二、文件上传1、配置Spring Boot项目2、创建文件上传控制器3、配置文件上传大小限制 三、文件下载1、创建文件下载控制器 四、使用示例1、文件上传2、文件下载 五、总结 Spring Boot 实现文件上传和下载 一、引言 在现代Web应…

GEE | 植被总初级生产力GPP的时间变化特征

同学们好&#xff0c;这期我们分享的是植被总初级生产力GPP的日、月、生长季和年变化趋势代码。我们选用的数据集是MODIS/061/MOD17A2HGF&#xff0c;该产品时间跨度为2000-至今&#xff0c;空间分辨率500米&#xff0c;时间分辨率8天。 其中我们把生长季时间设置为了5-9月份&…