在 Python 中使用 openpyxl 模块时得到奇怪的结果

got weird results when using the openpyxl module in Python

我有一个excel电子表格,其数据如下(从A1到C3): original spreadsheet 我想计算一列中出现 none- 零值的几率,然后将结果写入该列的最后一个单元格。对于第三列,结果应该是 2/3 = 0.67 下面是我为做同样的事情而编写的 Python 脚本,但它显然得到了错误的结果。

代码:

import openpyxl
wb = openpyxl.load_workbook('testXls.xlsx')
sheet = wb.active
for colNum in range(1, sheet.max_column + 1):
    coverCount = 0
    for rowNum in range(1, sheet.max_row + 1):
        if sheet.cell(row=rowNum, column=colNum).value != 0:
            coverCount += 1
    sheet.cell(row=4, column=colNum).value = round(coverCount / 3, 2)
wb.save('testXls2.xlsx')

结果: result spreadsheet

我在代码中找不到任何错误。有人可以启发我吗?非常感谢。

问题是你在每次迭代的第四行写下值,导致不必要的迭代。