Openpyxl не изменяет обновленные функции Excel в сгенерированном ExcelPython

Программы на Python
Ответить
Anonymous
 Openpyxl не изменяет обновленные функции Excel в сгенерированном Excel

Сообщение Anonymous »

Я читаю файл Excel, содержащий множество базовых функций Excel, с использованием библиотеки Openpyxl. Мне нужно изменить здесь некоторые функции Excel в зависимости от условия. Однако, когда я пишу обратно в новый файл Excel после изменения, измененная функция Excel не отображается/не работает должным образом.
Мой фрагмент кода выглядит следующим образом:

Код: Выделить всё

def df_to_excel(df, worksheet, startrow=0, startcol=0):
rows = openpyxl.utils.dataframe.dataframe_to_rows(df, header=False, index=False)
for row_id, row_name in enumerate(rows, startrow+1):
for col_id, val in enumerate(row_name, startcol+1):
worksheet.cell(row=row_id, column=col_id).value = val

def update_template(equation_df):
workbook = openpyxl.load_workbook(r"....file", keep_vba=True, read_only=False)
worksheet = workbook.worksheets[0]

num_rows = worksheet.max_row+1
datalist = []
for i in range(1, num_rows):
row = [cell.value for cell in worksheet[i]]
datalist.append(row)

temp_df = pandas.Dataframe(datalist)
for index, row in temp_df.iterrows():
for col in temp_df.columns:
for cella, cellb in zip(equation_df['Col1'], equation_df['Col2']):
if row[col] == cellb[:1]:
row[col] = f"=@{cella}"
df_to_excel(temp_df, worksheet)

newfile = f"{file} Modified.xlsm"
workbook.save(newfile)
Этот код создает новый файл Excel, принимая заменяемое уравнение из другого фрейма данных (equation_df). Однако, когда я пытаюсь обновить новое уравнение, используя f"=@{cella}", оно ничего не меняет и возвращает пустую ячейку.
Если я заменю это просто < strong>cella, затем оно изменяет уравнение, но просто отображает его в виде строки в новом файле Excel, а не в виде уравнения Excel.
Пожалуйста, подскажите мне.

Подробнее здесь: https://stackoverflow.com/questions/792 ... ated-excel
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»