Java POI库操作Excel:读取与处理示例
需积分: 1 66 浏览量
更新于2024-08-03
收藏 3KB TXT 举报
"Apache POI 是一个用于处理 Microsoft Office 文件的 Java 库,特别适用于 Excel 文档的读写。它支持两种 Excel 文件格式,即 .xls 和 .xlsx,且能处理复杂的元素,如图表和公式。为了在 Java 项目中使用 POI,需要添加对应的 Maven 依赖。以下是一个简单的示例代码,演示了如何使用 POI 读取 Excel 文件中的数据。"
Apache POI 是 Apache 软件基金会的一个开源项目,提供了 Java 开发者处理 Microsoft Office 文件格式的能力,包括 Word、PowerPoint 和尤其重要的 Excel。在这个场景中,我们关注的是如何利用 POI 操作 Excel 文件。
首先,要将 POI 库引入到 Java 项目中,通常是在 Maven 的 `pom.xml` 文件中添加如下依赖:
```xml
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
```
这里的版本号 `4.1.2` 是截至本文撰写时的最新稳定版本,你可以根据实际情况选择合适版本。
接着,我们可以编写 Java 代码来读取 Excel 文件。以下是一个简单的示例,展示了如何读取 Excel 文件的第一个工作表中的数据:
```java
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class ExcelReader {
public static void main(String[] args) {
String excelFilePath = "path/to/excel/file.xlsx";
FileInputStream inputStream = null;
Workbook workbook = null;
Sheet sheet = null;
Row row = null;
Cell cell = null;
try {
inputStream = new FileInputStream(new File(excelFilePath));
workbook = new XSSFWorkbook(inputStream);
sheet = workbook.getSheetAt(0); // 读取第一个工作表
for (row = sheet.getRow(0); row != null; row = row.getNextRow()) { // 逐行读取
for (cell = row.getFirstCell(); cell != null; cell = cell.getNextCell()) { // 逐列读取
switch (cell.getCellType()) { // 根据单元格类型获取单元格值
case STRING:
System.out.print(cell.getStringCellValue() + "\t");
break;
case NUMERIC:
System.out.print(cell.getNumericCellValue() + "\t");
break;
case BOOLEAN:
System.out.print(cell.getBooleanCellValue() + "\t");
break;
// 添加对其他类型的处理,如 DATE, FORMULA 等
}
}
System.out.println(); // 在每行结束时换行
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (workbook != null) {
try {
workbook.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
```
这段代码首先创建了一个 `FileInputStream` 来打开指定路径的 Excel 文件,然后通过 `XSSFWorkbook` 类实例化一个工作簿对象。接下来,获取工作簿的第一个工作表,并使用双重循环遍历所有行和列。通过 `getCellType()` 方法判断单元格类型,然后调用相应的 `getStringCellValue()`, `getNumericCellValue()`, 或 `getBooleanCellValue()` 获取单元格的值。读取完成后,记得关闭输入流和工作簿以释放资源。
这只是使用 POI 库的基本操作,实际上,POI 还提供了许多其他高级功能,例如创建、修改工作表,设置样式、公式,处理图表等。开发者可以根据实际需求,查阅 POI 的官方文档,深入了解和运用这些功能。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2024-11-12 上传
2019-03-14 上传
2016-06-24 上传
2020-09-02 上传
点击了解资源详情
点击了解资源详情
smartsmile2012
- 粉丝: 866
- 资源: 83
最新资源
- 熔铜水平连铸机.zip西门子PLC编程实例程序源码下载
- 数学建模国赛的论文,从2013年至2017年,有部分代码.zip
- blocks:Loadsmart的React Native组件
- gsa-hackathon-t4:GSA 黑客马拉松团队 4
- PMSMMTPA_pmsmcontrol_pmsm_电机控制_sometime2i8_矢量控制_源码.rar
- ScrapyWithBloomFilter:一个带有bloom过滤器的scrapy项目
- Android版本的离线的OCRdemo,可以参考使用
- Awesome_Unreal_Engine_4:UE4 资源集合(插件、效果、文档、工具等...)
- Xamarin.Gozer.Droid:用于集成标签的Utility Droid项目
- Android 58同城的加载动画效果
- Nastran 辅助代码用于设计和分析机翼的气动弹性响应,绘制双点格方法和 FEM 网格的面板。.zip
- GesturesDemos(实用1).zip
- mediamux:一个以简洁,可维护,移动优先的方式编写响应式React组件的实用程序
- java芋道源码-sqlite-jdbc:JDBC的SQLite/Spatialite驱动程序
- Projeto-Star-Wars
- Python库 | aws_cdk.aws_fsx-1.71.0-py3-none-any.whl