我正在寻找任何人都可以帮我在Python上加载xlsx文件中进行循环。
我需要对2个单元格进行一些划分,我可以做到1个结果,但问题是我需要用超过10000个数据执行此操作。我想也许有一个循环,我们可以做到但我不知道如何。
更清楚,这是第一个加载xlsx文档的两个图像,第二个是我的结果:
在
在
from openpyxl import load_workbook
wb = load_workbook(filename='Data.xlsx')
ws = wb['Data']
ws.auto_filter.ref = "A1:E1"
ws["E1"] = 'Fillrate%'
ws["E2"] = round(((ws['C2'].value)/(float(ws['B2'].value))*100),2)
ws["E3"] = round(((ws['C3'].value)/(float(ws['B3'].value))*100),2)
ws["E4"] = round(((ws['C4'].value)/(float(ws['B4'].value))*100),2)
ws["E5"] = round(((ws['C5'].value)/(float(ws['B5'].value))*100),2)
ws["E6"] = round(((ws['C6'].value)/(float(ws['B6'].value))*100),2)
wb.save("Analized_Data.xlsx")
答案 0 :(得分:1)
我很想让Excel进行计算并使用公式。但要回答你的问题:使用ws.iter_cols(min_col=5, min_row=2, max_col=5)
获取E列中的所有单元格并循环遍历它。
答案 1 :(得分:0)
是的,你可以使用循环。
首先获取行数,然后使用range()
函数进行迭代,如下所示:
max_row = ws.max_row
for index in range(1, max_row + 1):
ws["E{0}".format(index)] = round((ws['C{0}'.format(index)].value /
float(ws['B{0}'.format(index)].value) * 100), 2)