Я пытаюсь предоставить ссылку для загрузки автоматически созданной электронной таблицы и пытаюсь использовать openpyxl для создания электронной таблицы. Это почти работает, за исключением одной маленькой детали: когда я пытаюсь использовать формулу в качестве значения ячейки, в конце сохраненной электронной таблицы добавляется закрывающая скобка. Это приводит к #NAME? ошибка.
А именно, я использую что-то подобное в качестве значения
"=VLOOKUP(A{}, $'lookup_table'.A1:B3, 2, 0) - B{}".format(i + 1, i + 1)
и полученное значение в электронной таблице выглядит примерно так (я открываю его с помощью LibreOffice Calc)
=VLOOKUP(A1, $'lookup_table'.A1:B3, 2, 0) - B1)
Обратите внимание на дополнительные скобки после B1.
Я покопался в Интернете, чтобы найти решение, но продолжал появляться пустым. Любое руководство о том, как правильно сделать этот формат?
пример минимального кода
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws1 = wb.create_sheet(title="lookup_table")
lookup_table = {"one": 1, "two": 2, "three": 3}
for row, (key, value) in enumerate(lookup_table.items()):
ws1.cell(column=1, row=row + 1, value=key)
ws1.cell(column=2, row=row + 1, value=value)
for i, value in enumerate(["one", "two", "three"]):
ws.cell(column=1, row=i + 1, value=value)
ws.cell(column=2, row=i + 1, value=lookup_table[value])
ws.cell(
column=3,
row=i + 1,
value="=VLOOKUP(A{}, $'lookup_table'.A1:B3, 2, 0) - B{}".format(i + 1, i + 1),
)
wb.save("test.xlsx")