Java操作Excel:读取.xls和.xlsx文件的特定列
![](https://csdnimg.cn/release/wenkucmsfe/public/img/starY.0159711c.png)
"这篇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`来实现流式处理。
10592 浏览量
2023-05-17 上传
180 浏览量
235 浏览量
2024-10-18 上传
2023-04-02 上传
2023-06-07 上传
![](https://profile-avatar.csdnimg.cn/a4435c44c2b643c29ae1bdbc0e8f312b_benben574599386.jpg!1)
1210fei
- 粉丝: 18
最新资源
- OCP指南:理解价值与分类,避开误区
- Windows 2000 + Oracle 9i 安装配置详指南
- ActionScript 3.0组件使用指南
- C语言指针完全解析:从基础到复杂类型
- Hibernate实战指南:Manning出版社
- 9iClient Form Builder基础开发:安装与环境设置
- Flex与J2EE深度集成:服务导向架构与RIA开发
- Oracle数据库安全:概要文件与用户管理
- Oracle事务管理详解:进程与会话的管控
- Oracle对象管理最佳实践
- Oracle分区管理详解
- Zend Framework入门教程:由Rob Allen撰写
- C语言基础:数据类型详解
- VNC协议详解:登录与桌面共享机制
- SQL入门与实践:基础语句与练习解析
- 《Div+CSS布局大全》网页设计教程