PC がクラッシュしたため、すべてのライブラリを再インストールする必要がありました。インストールが完了した後、一部のライブラリが新しいバージョンに更新され、コードが機能しなくなったことに気付きました (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)
<ipython-input-5-9efc1289cc73> in <module>()
----> 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)
<ipython-input-13-2cfd938ccf60> in <module>()
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'