在 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
我在代码中找不到任何错误。有人可以启发我吗?非常感谢。
问题是你在每次迭代的第四行写下值,导致不必要的迭代。
我有一个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
我在代码中找不到任何错误。有人可以启发我吗?非常感谢。
问题是你在每次迭代的第四行写下值,导致不必要的迭代。