python如何获取有效数据行数
### 三级标题:使用 `openpyxl` 获取有效数据行数
在处理 Excel 文件时,可以通过 `openpyxl` 提供的 `max_row` 属性获取当前工作表中有效数据的行数。该属性返回的是最后一个非空单元格所在的行号,因此可以作为数据行数的参考值。例如:
```python
from openpyxl import load_workbook
# 加载 Excel 文件
wb = load_workbook("example.xlsx")
# 选择指定的工作表
sh = wb["login"]
# 获取最大行数
row_count = sh.max_row
print(f"当前工作表的实际数据行数为:{row_count}")
```
需要注意的是,`max_row` 会包括格式化但内容为空的单元格所在行,这可能导致返回的行数大于实际数据的有效行数[^1]。如果希望排除空行的影响,可以结合遍历和判断逻辑实现更精确的统计。
### 三级标题:获取有效数据行数的优化方式
为了确保获取的数据行数更加准确,可以结合遍历所有行并判断每行是否为空的方式实现。以下是一个示例代码:
```python
from openpyxl import load_workbook
# 加载 Excel 文件
wb = load_workbook("example.xlsx")
# 选择指定的工作表
sh = wb["login"]
# 遍历所有行并统计非空行数量
valid_row_count = 0
for row in sh.iter_rows(values_only=True):
if any(cell is not None for cell in row):
valid_row_count += 1
print(f"当前工作表的有效数据行数为:{valid_row_count}")
```
此方法通过逐行判断是否包含非空单元格,能够有效排除格式化空行的影响,从而提供更精确的数据行数统计结果。
### 三级标题:相关注意事项
- `openpyxl` 仅支持 `.xlsx` 格式的 Excel 文件,不支持 `.xls` 格式。
- 在获取数据行数前,需要确保工作簿和工作表对象已正确加载,否则可能导致异常。
- 如果工作表中存在大量格式化但内容为空的单元格,建议使用遍历方式获取有效行数,以避免 `max_row` 的误判。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考