Java操作Excel:读取.xls和.xlsx文件的特定列
3星 · 超过75%的资源 需积分: 50 30 浏览量
更新于2024-09-08
1
收藏 2KB TXT 举报
"这篇Java代码示例展示了如何获取Excel文件中的特定列,支持.xls和.xlsx两种格式。"
在Java编程中,Apache POI库被广泛用于处理Microsoft Office文档,包括Excel。以下代码片段展示了如何使用Apache POI读取并打印Excel文件中的一列数据。
首先,我们导入了必要的POI库类,包括`XSSFWorkbook`、`XSSFSheet`、`XSSFRow`和`XSSFCell`,这些类分别用于操作.xlsx格式的工作簿、工作表、行和单元格。
```java
import org.apache.poi.ss.usermodel.Cell;
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;
```
接着,我们在`main`方法中定义了Excel文件的路径,并创建了一个`FileInputStream`对象来读取文件。然后,我们通过`XSSFWorkbook`实例化一个工作簿对象,处理的是.xlsx格式的文件:
```java
String path = "C:\\Users\\admin\\Desktop\\测试.xlsx";
InputStream iStream = new FileInputStream(path);
XSSFWorkbook workbook = new XSSFWorkbook(iStream);
```
为了处理.xls格式的文件,可以使用`HSSFWorkbook`,这部分在注释中给出,这里不再详细展开。
接下来,我们需要遍历工作簿中的每一张工作表:
```java
for (int numSheet = 0; numSheet < workbook.getNumberOfSheets(); numSheet++) {
XSSFSheet sheet = workbook.getSheetAt(numSheet);
// ...
}
```
对于每个工作表,我们循环读取每一行,并获取该行的所有单元格:
```java
for (int runNum = 0; runNum < sheet.getLastRowNum(); runNum++) {
XSSFRow row = sheet.getRow(runNum);
int minColIx = row.getFirstCellNum();
int maxColIx = row.getLastCellNum();
// 遍历该行,获取每个cell元素
for (int colIx = minColIx; colIx < maxColIx; colIx++) {
XSSFCell cell = row.getCell(colIx);
System.out.println(cell.getStringCellValue());
}
}
```
在这里,`getFirstCellNum()`和`getLastCellNum()`方法用于获取行中的第一个和最后一个单元格索引,然后我们遍历这些索引,获取并打印每个单元格的值。`getStringCellValue()`方法用于获取单元格的字符串值。
这个代码片段展示了基本的Excel数据读取操作,但实际应用中可能需要根据具体需求进行扩展,例如处理空单元格、数字、日期等不同类型的值,或者根据特定条件过滤和处理数据。同时,为了防止内存溢出,大文件操作时通常会使用`SXSSFWorkbook`来实现流式处理。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-05-17 上传
2023-12-20 上传
2020-09-04 上传
2024-10-18 上传
2023-04-02 上传
2023-06-07 上传
1210fei
- 粉丝: 18
- 资源: 15
最新资源
- Java毕业设计项目:校园二手交易网站开发指南
- Blaseball Plus插件开发与构建教程
- Deno Express:模仿Node.js Express的Deno Web服务器解决方案
- coc-snippets: 强化coc.nvim代码片段体验
- Java面向对象编程语言特性解析与学生信息管理系统开发
- 掌握Java实现硬盘链接技术:LinkDisks深度解析
- 基于Springboot和Vue的Java网盘系统开发
- jMonkeyEngine3 SDK:Netbeans集成的3D应用开发利器
- Python家庭作业指南与实践技巧
- Java企业级Web项目实践指南
- Eureka注册中心与Go客户端使用指南
- TsinghuaNet客户端:跨平台校园网联网解决方案
- 掌握lazycsv:C++中高效解析CSV文件的单头库
- FSDAF遥感影像时空融合python实现教程
- Envato Markets分析工具扩展:监控销售与评论
- Kotlin实现NumPy绑定:提升数组数据处理性能