我试图在一定范围内的列内平均出值。我试着列出范围作为一个元组,然后循环,以便能够获得单元格值。然后,我为平均值创建了一个变量,但得到错误'TypeError: 'float'对象是不可迭代的。
range1 = ws["A2":"A6]
for cell in range1:
for x in cell:
average = sum(x.value)/len(x.value)
print(average)
Python和Openpyxl API使这类事情变得非常容易。
rows = ws.iter_rows(min_row=2, max_row=6, max_col=1, values_only=True)
values = [row[0] for row in rows]
avg = sum(values) / len(values)
但是你应该检查单元格是否包含数字,否则你会看到一个异常。
这样可以得到单元格的平均值。
import openpyxl as op
def main():
wb = op.load_workbook(filename='C:\Users\####\Desktop\SO nonsense\Book1.xlsm')
range1 = wb['Sheet1']['A2:A6']
cellsum = 0
for i, cell in enumerate(range1, 1):
print(i)
cellsum += cell[0].value
print(cellsum / i)
main()