Java使用Apache POI读取Excel内容示例
需积分: 34 139 浏览量
更新于2024-09-08
收藏 8KB TXT 举报
"使用Java读取Excel内容通常需要Apache POI库的支持。Apache POI是一个流行的开源API,专门用于处理Microsoft Office格式的文件,包括Excel。在Java程序中,我们可以利用POI库来读取、写入以及修改Excel文件。为了使用它,你需要下载poi.jar文件并将其添加到你的项目类路径中。然后,你可以通过以下步骤来读取Excel文件的内容:
1. 引入必要的库:
```java
import java.io.*;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
```
2. 创建一个`File`对象,指向你要读取的Excel文件:
```java
File file = new File("ExcelDemo.xls");
```
3. 使用`POIFSFileSystem`和`HSSFWorkbook`打开Excel文件:
```java
FileInputStream fis = new FileInputStream(file);
POIFSFileSystem fs = new POIFSFileSystem(fis);
HSSFWorkbook workbook = new HSSFWorkbook(fs);
```
4. 获取工作表(sheet):
```java
HSSFSheet sheet = workbook.getSheetAt(0); // 0表示第一个工作表,根据需要更改
```
5. 遍历行和单元格,读取数据:
```java
List<List<String>> result = new ArrayList<>();
for (HSSFRow row : sheet) {
List<String> rowData = new ArrayList<>();
for (HSSFCell cell : row) {
switch (cell.getCellType()) {
case STRING:
rowData.add(cell.getStringCellValue());
break;
case NUMERIC:
if (HSSFDateUtil.isCellDateFormatted(cell)) {
Date date = cell.getDateCellValue();
rowData.add(new SimpleDateFormat("yyyy-MM-dd").format(date));
} else {
rowData.add(Double.toString(cell.getNumericCellValue()));
}
break;
// 其他类型如BOOLEAN, FORMULA等按需处理
}
}
result.add(rowData);
}
// 打印结果
for (List<String> row : result) {
for (String value : row) {
System.out.print(value + "\t\t");
}
System.out.println();
}
```
6. 关闭文件流:
```java
workbook.close();
fis.close();
```
以上代码示例展示了如何读取Excel文件中的数据,并将其以二维数组的形式打印出来。需要注意的是,这个例子是针对老版本的Excel文件(.xls),如果是新版本的Excel文件(.xlsx),则需要使用`XSSFWorkbook`和对应的sheet、cell类。同时,处理日期和数字时,需要根据实际的格式进行转换。在实际项目中,你可能还需要考虑错误处理和异常捕获,确保文件操作的稳健性。"
2018-02-27 上传
2023-11-12 上传
2023-05-26 上传
2023-04-19 上传
2023-04-19 上传
2023-05-31 上传
2023-12-12 上传
软件开发者
- 粉丝: 17
- 资源: 131
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器