
Java利用POI读取Excel示例与解析
下载需积分: 10 | 42KB |
更新于2024-09-11
| 74 浏览量 | 举报
收藏
"这篇文档是关于使用Apache POI库在Java中读取Excel文件的示例程序。通过导入相应的jar包并使用特定的API,开发者可以实现对Excel文档的读取操作,对进行Excel开发的人员具有指导意义。"
Apache POI是一个流行的开源Java API,它允许开发人员创建、修改和显示Microsoft Office格式的文件,其中包括Excel。在这个例子中,我们将重点放在如何使用POI来读取Excel文件。
首先,确保在项目中引入了`poi-3.1-FINAL.jar`库。接着,在Java代码中,我们需要引入相关的包,例如`java.io`用于处理输入输出,以及`org.apache.poi`包,它是POI库的一部分,包含处理Excel文件所需的类。
以下是一个简单的读取Excel文件的Java程序:
```java
package demo.excel;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.hssf.eventusermodel.HSSFRequest;
import org.apache.poi.hssf.model.Sheet;
import org.apache.poi.hssf.model.Workbook;
import org.apache.poi.hssf.usermodel.HSSFCell;
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;
public class ExcelDemo {
public static void main(String[] args) {
File f = new File("f:/aa.xls");
if (f.exists()) {
try {
InputStream fis = new FileInputStream(f);
// 创建POIFSFileSystem对象,用于读取Excel文件
POIFSFileSystem poifs = new POIFSFileSystem(fis);
// 创建HSSFWorkbook对象,表示整个Excel工作簿
HSSFWorkbook wb = new HSSFWorkbook(poifs);
List<List<String>> retList = new ArrayList<>();
System.out.println("此文件中表的数量是:" + wb.getNumberOfSheets());
// 遍历每个工作表
for (int sheetIndex = 0; sheetIndex < wb.getNumberOfSheets(); sheetIndex++) {
HSSFSheet sheet = wb.getSheetAt(sheetIndex);
System.out.println("当前工作表名称:" + sheet.getSheetName());
// 遍历每行数据
for (int rowIndex = 0; ; rowIndex++) { // 注意:终止条件通常为HSSFRow.getLastRowNum()+1
HSSFRow row = sheet.getRow(rowIndex);
if (row == null) break; // 如果行为空,跳出循环
List<String> rowData = new ArrayList<>();
// 遍历单元格数据
for (int cellIndex = 0; cellIndex < row.getLastCellNum(); cellIndex++) {
HSSFCell cell = row.getCell(cellIndex);
if (cell != null) {
String cellValue = getCellValue(cell);
rowData.add(cellValue);
}
}
retList.add(rowData);
}
}
// 关闭工作簿和输入流
wb.close();
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} else {
System.out.println("文件不存在!");
}
}
// 获取单元格的值
private static String getCellValue(HSSFCell cell) {
switch (cell.getCellType()) {
case STRING:
return cell.getStringCellValue();
case NUMERIC:
return String.valueOf(cell.getNumericCellValue());
// 处理其他类型的单元格值
// ...
}
return "";
}
}
```
在这个程序中,我们首先创建`POIFSFileSystem`对象来打开Excel文件,然后通过它创建`HSSFWorkbook`对象,该对象代表整个Excel工作簿。我们可以通过`getNumberOfSheets()`方法获取工作簿中的工作表数量,并使用`getSheetAt(int index)`来访问特定索引的工作表。
在遍历工作表的过程中,我们读取每一行(`HSSFRow`)和每个单元格(`HSSFCell`)。`HSSFRow.getLastCellNum()`返回行中最后一个非空白单元格的索引,`HSSFCell.getCellType()`确定单元格的类型(如字符串、数字等),并根据类型提取对应的值。
读取完成后,记得关闭工作簿和输入流以释放资源。这个例子中,读取到的数据被存储在一个二维列表中,方便后续处理。
Apache POI提供了一套丰富的API,使得Java开发者能够方便地处理Excel文件,包括读取、写入和修改数据,以及创建新的Excel文件。通过理解和应用这些API,你可以构建自己的Excel处理工具或集成到现有的业务系统中。
相关推荐










hq8215
- 粉丝: 0
最新资源
- 深入探究微软多层架构:文档与实例剖析
- C# QQ登录助手v1.1.12源码:批量自动登录与快捷方式创建
- Flash邮件发送原文件及操作指南
- Excel内置VBA编程制作的游戏集锦
- C#局域网文件传输软件:UDP/TCP广播实现
- cewolf图形报表工具开发包及源码发布
- 开源类QQ即时通讯软件P2P源代码解析
- 原创手机杀鸡游戏震撼发布
- AXTN清除异常互斥记录技术解析
- JBPM数据库结构详解与各表功能
- 掌握JPEG与BMP格式转换的源码实现
- 手动配置Struts+Spring+Hibernate项目依赖jar包指南
- 深入理解Struts DispatchAction的实践应用
- ExtExtenders3.10:.NET框架下的ExtJS控件库
- 通用开源框架OA系统源码解析与应用指南
- CSS样式参考模板集锦:新手必备下载资源
- 实现ASP下拉框选中动态填充文本框的数据库内容
- C#语言实现国际化的方法与实践
- VC++开发的商品销售管理系统专业解决方案
- 软件测试培训资料:方法学习与实践应用
- 图片左右平滑移动的JS效果实现
- 飞Q局域网传输工具:高效文件与消息互通
- 深入解析UML设计核心技术及其应用(希望公司版)
- Struts框架实现加法示例教程分享