我的目标是打开一个有不匹配数据项的电子表格,并在列中逐行遍历它们,然后处理信息。当使用带有range(2, ws.max_row)
的for循环进行迭代时,迭代将继续经过数据的最后一个实例(单元格a36),并继续迭代,并且不返回任何值,超出我期望ws.max_row参数在单元格a36处停止的位置
这就是我所尝试的:
for cell in range(2, ws.max_row):
value = ws.cell(row=cell, column=1).value
print(value)
输出显示包含数据的单元格值,然后在单元格a36之后继续输出空单元格,例如:
DPS ‐ Hot Springs ‐ 206 S Chicago Street
None
None
None
None
None
A36是最后一个包含数据的单元格,我认为max_行与最后一个包含数据的行是等价的。有人知道是什么导致我的for循环随后继续吗
也许你的excel文件在你期望的最后一个数据单元格之外编辑了几个非类型单元格
有两种方法可以解决这个问题
当
cell.value
等于ur期望值时,在ur循环中设置一个break
检查您的excel文件是否有您意想不到的非类型单元格
如果列一直填充到最后一行(在本例中是第36行),为什么不使用while循环和break条件呢
大致如下:
正如@stovfl和@Charlie Clark所述,
max_row
不一定是数据中不None
的最后一行。最好是直言不讳相关问题 更多 >
编程相关推荐