написание формулы excel для каждой строки в столбце

#python #openpyxl

Вопрос:

У меня есть данные с веб-сайта, которые записываются в excel при каждом запуске программы. Мне нужна формула в нескольких столбцах, использующая данные в определенных ячейках. Ниже приведен мой код, и я вручную добавил значения в ячейки для этого примера. Мне нужны формулы в столбце B, столбце D и столбце F. Столбец B должен быть суммой A2-A1, Столбец D должен быть суммой C2-C1, Столбец F должен быть суммой B1/D1

После написания строки мне нужно выполнить формулы для всех строк в столбцах B , D, F. Как я могу вставить формулу с помощью python? Может кто-нибудь помочь.

 from openpyxl import load_workbook path = r"C:/folder/file.xlsx" wb = load_workbook(path)  sheet = wb[sheet_name]  row = sheet.max_row   1 sheet.cell(row=row, column=1, value="10") # =gt; column A sheet.cell(row=row, column=2, value="20") # =gt; column C sheet.cell(row=row, column=3, value="100") # =gt; column E  

Комментарии:

1. Чтобы вставить формулу, вы можете использовать что-то вроде этого value="=A2-A1"

2. У меня есть 100 строк, как я могу сделать для всех строк?

Ответ №1:

 from openpyxl import load_workbook path = r"c:/Temp/file.xlsx" wb = load_workbook(path)  sheet_name = "Sheet1" sheet = wb[sheet_name]  for row in range(1, 101): # loop over 100 first rows  sheet.cell(row=row, column=1, value=10) # =gt; column A  sheet.cell(row=row, column=3, value=20) # =gt; column C  sheet.cell(row=row, column=5, value=100) # =gt; column E   # make the formulae  # I did not understand the meaning of the formulas without sample data  # and examples, so I tried to do it literally as it was written,  # with correction for line offset  sheet.cell(row=row 1, column=2, value=f'=SUM(A{row 1}-A{row})')  sheet.cell(row=row 1, column=4, value=f'=SUM(C{row 1}-C{row})')  sheet.cell(row=row 1, column=6, value=f'=IFERROR(SUM(B{row}/D{row}),"-")')  wb.save(path) wb.close