java读取excel表格的数据总量
时间: 2025-06-30 08:20:47 AIGC 浏览: 22
### Java 读取 Excel 表格数据总量
为了实现通过 Java 读取 Excel 文件并统计其数据总量的功能,可以借助 Apache POI 库来操作 Excel 文档。Apache POI 是一个强大的开源库,支持处理 Microsoft Office 格式的文件,包括 `.xls` 和 `.xlsx`。
以下是完整的解决方案:
#### 使用 Maven 添加依赖项
如果项目基于 Maven 构建,则需在 `pom.xml` 中添加以下依赖项以引入 Apache POI:
```xml
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
```
#### 示例代码:读取 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 ExcelDataCounter {
public static int countTotalRows(String filePath) throws IOException {
FileInputStream fileInputStream = new FileInputStream(new File(filePath));
Workbook workbook = null;
try {
// 判断文件类型 (.xls 或 .xlsx),并创建相应的Workbook对象
if (filePath.endsWith(".xlsx")) {
workbook = new XSSFWorkbook(fileInputStream);
} else if (filePath.endsWith(".xls")) {
workbook = new HSSFWorkbook(fileInputStream);
}
if (workbook != null) {
int totalRowCount = 0; // 总行数计数器
for (int i = 0; i < workbook.getNumberOfSheets(); i++) { // 遍历每个Sheet
Sheet sheet = workbook.getSheetAt(i);
if (sheet != null && !sheet.sheetName().startsWith("隐藏")) { // 跳过隐藏的工作表或其他条件过滤
totalRowCount += sheet.getPhysicalNumberOfRows();
}
}
return totalRowCount;
}
} finally {
if (workbook != null) {
workbook.close();
}
fileInputStream.close();
}
return 0;
}
public static void main(String[] args) {
String excelFilePath = "example.xlsx"; // 替换为实际的Excel文件路径
try {
int rowCount = countTotalRows(excelFilePath);
System.out.println("Excel表格中的总行数:" + rowCount); // 输出结果
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
此代码实现了以下几个功能:
1. 支持读取 `.xls` 和 `.xlsx` 类型的文件。
2. 统计整个 Excel 文件中所有可见工作表的有效行总数[^1]。
3. 提供了一个简单的异常捕获机制以便于调试错误。
注意,在某些情况下可能需要额外逻辑排除空白行或者特定标记的无效记录。
---
阅读全文
相关推荐














