Как изменить таблицы xml внутри excel с помощью openpyxl?

Я пытаюсь заполнить таблицу (внутри шаблона xlsx для Dynamics NAV) с помощью openpyxl, но когда я открываю файл в Excel, появляется предупреждение: «Мы обнаружили проблему с некоторым содержимым в <Excel_filename>. Вы хотите, чтобы мы попытались восстановить файл настолько, насколько это возможно? Если вы доверяете источнику этой книги, нажмите «Да».

Затем Excel «восстанавливает» файл, и я все еще вижу данные, но таблица /xl/tables/table1.xml исчезла, и Navision не может принять файл.

Это мой код на питоне:

      import openpyxl

wb = openpyxl.load_workbook("data_source.xlsx", data_only=True)
sheet1 = wb.active

wb2 = openpyxl.load_workbook('template.xlsx')
sheet2 = wb2.active

filas = sheet1.max_row

for fila in range(3,filas): 
    sheet2["A"+ str(fila)] = sheet1["A"+ str(fila)].value
    sheet2["B"+ str(fila)] = sheet1["B"+ str(fila)].value
    sheet2["C"+ str(fila)] = "FRA"
    sheet2["D"+ str(fila)] = "NAC"

wb2.save('tax1.xlsx')
wb2.close()

Когда я создаю таблицу с нуля с кодом, который они показывают на официальном сайте openpyxl: https://openpyxl.readthedocs.io/en/latest/worksheet_tables.html#creating-a-table , он отлично работает, только если таблица начинается с первая строка (ref="A1:E5").

... но в этом шаблоне есть таблица, начинающаяся с 3-й строки!

Итак, когда я пытаюсь создать нужную мне таблицу (ref="A3:D6"), я получаю следующее:'UserWarning: File may not be readable: column headings must be strings.'и, как и ожидалось, я получаю то же предупреждение и тот же результат, когда открываю его в Excel.

Есть ли способ изменить/заполнить таблицу без повреждения файла xlsx?

или, как обходной путь Есть ли способ создать таблицу из А3 без ошибок? заранее спасибо

0 ответов

Другие вопросы по тегам