python openpyxl max_row对所有行进行计数,而不是对非空行进行计数

python openpyxl max_row对所有行进行计数,而不是对非空行进行计数,python,openpyxl,Python,Openpyxl,我使用的是excel表格,其中总共有999行,其中20行是数据填充行,其他行是空的 所以当我打印max_行时,它会给我999个数字,而不是20个!我正在学习本教程- 这是意料之中的。根据文件max_行返回 包含基于1的数据的最大行索引 i、 e.最大行索引,而不是包含数据的行数。如果您的数据仅在第100行,您将得到100,而不是预期的1。根据文件max_行返回 包含基于1的数据的最大行索引 i、 e.最大行索引,而不是包含数据的行数。如果您的数据仅在第100行,您将得到100,而不是1,如果您想

我使用的是excel表格,其中总共有999行,其中20行是数据填充行,其他行是空的

所以当我打印max_行时,它会给我999个数字,而不是20个!我正在学习本教程-


这是意料之中的。根据文件max_行返回

包含基于1的数据的最大行索引


i、 e.最大行索引,而不是包含数据的行数。如果您的数据仅在第100行,您将得到100,而不是预期的1。根据文件max_行返回

包含基于1的数据的最大行索引


i、 e.最大行索引,而不是包含数据的行数。如果您的数据仅在第100行,您将得到100,而不是1,如果您想使用openpyxl,您需要自己计算这些数据

wb = openpyxl.load_workbook(path)
ws = wb.active
count = 0
for row in ws:
    if not all([cell.value == None for cell in row]):
        count += 1

print(count)

解释


如果一个单元格在xlsx中没有任何值,那么当您得到它的值时,它等于无。仅当行中没有任何数据时,才会触发行中单元格的check cell.value==None。您可以轻松地将“全部”替换为“任何”,以不计算带有任何空字段的行。

如果要使用openpyxl,您需要自己计算行数

wb = openpyxl.load_workbook(path)
ws = wb.active
count = 0
for row in ws:
    if not all([cell.value == None for cell in row]):
        count += 1

print(count)

解释


如果一个单元格在xlsx中没有任何值,那么当您得到它的值时,它等于无。仅当行中没有任何数据时,才会触发行中单元格的check cell.value==None。您可以轻松地将所有字段替换为任何字段,以不计算具有任何空字段的行。

我发现我必须使用

if not all([  (cell.value == None or cell.value =='') for cell in row]):

不计算包含格式的空白单元格。否则,对于.xlsx文件,我会得到大约1048535的计数。

我发现我必须使用

if not all([  (cell.value == None or cell.value =='') for cell in row]):

不计算包含格式的空白单元格。否则,对于.xlsx文件,我会得到大约1048535的计数。

感谢您消除了混淆,那么openpyxl中是否有一些东西可以用来了解填充数据的行数或列数?我需要知道有多少字段是完整的,这样我就可以得到它们的计数并迭代插入到数据库中,我可以使用pandas来完成这项工作,但我只能使用pandas。您可以迭代列中的单元格并检查有多少字段不是空的。我发现了一个新的包xlrd。它似乎像预期的那样工作。如果更适合您的需要,请随意使用它:-感谢您消除了混淆,那么openpyxl中有什么东西可以用来了解数据填充的行数或列数吗?我需要知道有多少字段是完整的,这样我就可以得到它们的计数并迭代插入到数据库中,我可以使用pandas来完成这项工作,但我只能使用pandas。您可以迭代列中的单元格并检查有多少字段不是空的。我发现了一个新的包xlrd。它看起来像预期的那样工作。如果更适合你的需要,请随意使用它:-不要拒绝投票,除非你没有写下你为什么这样做,这样我才能更正我的任务。不要拒绝投票,除非你没有写下你为什么这样做,这样我才能更正我的任务。