Я пытаюсь добавить данные в одну ячейку в существующем файле xlsm, а затем сохранить его как новый файл xlsm с помощью editpyxl, но получаю сообщение об ошибке, указывающее, что ячейка не существует (IndexError: Ячейка A1 на TestSheet1 не существует) , На сайте editpyxl не так много документации, но приведенный пример кода показывает, как редактировать книгу. Вот что у меня есть (что в основном совпадает с примером на сайте):
from editpyxl import Workbook
wb = Workbook()
wb.open('C:/Test/original.xlsm')
ws = wb['TestSheet1']
print(wb.sheetnames)
ws.cell('A1').value = 'abc123'
wb.save('C:/Test/newfile.xlsm')
Вот полная ошибка:
Excel file does not contain xl/sharedStrings.xml
['TestSheet1', 'TestSheet2', 'TestSheet3']
Traceback (most recent call last):
File "C:\Test\editxlsm-ep.py", line 7, in <module>
ws.cell('A1').value = 'abc123'
File "C:\Users\xxxxxx\AppData\Local\Programs\Python\Python38\lib\site-
packages\editpyxl\worksheet.py", line 64, in cell
raise IndexError('Cell {0} on {1} does not exist'.format(coordinate, self.name))
IndexError: Cell A1 on TestSheet1 does not exist
Я пробовал это с файлом xlsx просто чтобы посмотреть, была ли проблема в xlsm, но получило то же сообщение об ошибке. Я также добавил строку печати, чтобы убедиться, что он может правильно загрузить файл. Похоже, что это происходит, так как имена трех листов печатаются до возникновения ошибки. Я искал больше помощи с библиотекой editpyxl, но не смог найти много. Версии того, что я использую: Excel - 2016, editpyxl - 0.1.9, python - 3.8.1. Спасибо.