Вставьте изображение в Excel с помощью openpyxlPython

Программы на Python
Anonymous
 Вставьте изображение в Excel с помощью openpyxl

Сообщение Anonymous »

Мой компьютер сломался, и мне пришлось переустановить все библиотеки; после завершения установки я понял, что некоторые библиотеки обновились до новой версии и мой код больше не работает (из-за новой версии openpyxl).
Я пытаюсь вставить изображение в файл Excel, но не понимаю возникающих сообщений об ошибках. Другие вопросы, похоже, касаются более старых версий openpyxl (для которых работал мой исходный код), но не работают для текущей версии openpyxl.
Исходный код (который работает):

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

import openpyxl
wb = openpyxl.load_workbook(filename)
ws = wb.get_sheet_by_name(sheet_name)
img = openpyxl.drawing.image.Image(img_name)
img.anchor(ws['D2'])
ws.add_image(img)
wb.save(filename)
Текущий код (который не работает):

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

import openpyxl
wb = openpyxl.load_workbook(filename)
ws = wb[sheet_name]
img = openpyxl.drawing.image.Image(img_name)
img.anchor(ws.cell(row=2,column=4))
ws.add_image(img)
wb.save(filename)
Сообщение об ошибке:

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

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
 in ()
----> 1 img.anchor(ws.cell(row=2,column=4))

TypeError: 'str' object is not callable
Очевидно, img.anchor теперь является строкой; Я понятия не имею, что это было раньше, но, по-видимому, это не была строка (поскольку не было сообщения об ошибке. При изменении следующего значения теперь устанавливается привязка, но я получаю другое сообщение об ошибке.
Устанавливает привязку:

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

img.anchor = ws.cell(row=2,column=4)
ws.add_image(img)
Но теперь при попытке сохранения происходит сбой:

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

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
 in ()
1 img.anchor = ws.cell(row=2,column=4)
2 ws.add_image(img)
----> 3 wb.save(filename)

AttributeError: 'Cell' object has no attribute 'upper'
Как это исправить?

Подробнее здесь: https://stackoverflow.com/questions/519 ... h-openpyxl

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