循环 python openpyxl。如何在单元格中添加循环
Loops python openpyxl. How to add Loops in cells
我正在寻找可以帮助我在 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")
是的,你可以使用循环。
先获取行数,然后用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)
我很想让 Excel 进行计算并使用公式。但要回答您的问题:使用 ws.iter_cols(min_col=5, min_row=2, max_col=5)
获取 E 列中的所有单元格并对其进行循环。
我正在寻找可以帮助我在 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")
是的,你可以使用循环。
先获取行数,然后用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)
我很想让 Excel 进行计算并使用公式。但要回答您的问题:使用 ws.iter_cols(min_col=5, min_row=2, max_col=5)
获取 E 列中的所有单元格并对其进行循环。