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

时间:2019-10-21 06:11:48

标签: python excel openpyxl

我有一个Excel电子表格,其数据如下(从A1到C3): original spreadsheet 我想计算一列中非零值的机会,然后将结果写入此列中的最后一个单元格。对于第三列,结果应为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

我在代码中找不到任何错误。有人可以启发我吗?我真的很感激。

1 个答案:

答案 0 :(得分:0)

问题是您在每次迭代的第四行中记下了该值,这会导致不必要的迭代。