27

openpyxlを使用して画像(jpeg、pngなど)を挿入することはできますか?

基本的には、生成された画像の下にチャートを配置したいと思います。

ドキュメントには何も表示されていませんが、コードの成熟度に比べると少し不足しているようです。

4

5 に答える 5

42

以下は、セルA1に画像を挿入します。必要に応じて画像の場所を調整するか、PIL画像の作成を自分で処理して、Image()

import openpyxl

wb = openpyxl.Workbook()
ws = wb.worksheets[0]
img = openpyxl.drawing.image.Image('test.jpg')
img.anchor = 'A1'
ws.add_image(img)
wb.save('out.xlsx')

openpyxlの古いバージョンでは、次のように機能します。

import openpyxl

wb = openpyxl.Workbook()
ws = wb.worksheets[0]
img = openpyxl.drawing.Image('test.jpg')
img.anchor(ws.cell('A1'))
ws.add_image(img)
wb.save('out.xlsx')
于 2013-03-18T18:07:08.073 に答える
11

openpyxlの現在のバージョン(少なくとも2.4.5まで)では、次のようにImageを呼び出す必要があります。

img = openpyxl.drawing.image.Image('test.jpg')

Anthonの例を使用すると:

import openpyxl

wb = openpyxl.Workbook()
ws = wb.worksheets[0]
img = openpyxl.drawing.image.Image('test.jpg')
img.anchor(ws.cell('A1'))
ws.add_image(img)
wb.save('out.xlsx')
于 2017-03-14T08:12:34.043 に答える
8

これを行う方法に関する完全な更新を提供します。このソリューションは、openpyxlバージョン2.4.5を使用します。

ローカルディレクトリに画像をダウンロードし、既存のブックを開いて、画像を挿入して保存しました。

import openpyxl
from openpyxl import load_workbook
from openpyxl import Workbook
from openpyxl.drawing.image import Image
from openpyxl.utils import coordinate_from_string

openpyxl_version = openpyxl.__version__
print(openpyxl_version)  #to see what version I'm running

# downloaded a .png to local directory manually from
# "https://www.python.org/static/opengraph-icon-200x200.png"

#change to the location and name of your image
png_loc = r'c:\users\me\opengraph-icon-200x200.png'

# test.xlsx already exists in my current directory 

wb = load_workbook('test.xlsx')
ws = wb.active
my_png = openpyxl.drawing.image.Image(png_loc)
ws.add_image(my_png, 'B3')
wb.save('test.xlsx')

結果:

ここに画像の説明を入力してください

于 2017-07-27T20:40:55.290 に答える
1

このコードは私のために働いた:

import openpyxl

wb = openpyxl.Workbook()
ws = wb.worksheets[0]
ws.merge_cells('A1:A3')
img = openpyxl.drawing.image.Image('image.jpg')
row_number = 1
col_idx = 1
cell = ws.cell(row=row_number, column=col_idx)
ws.add_image(img)
wb.save('output.xlsx')
于 2018-11-16T05:34:26.393 に答える
0

追加するだけで、私はopenpyxl == 2.5.6(Python3.65を使用)を使用しており、img.anchor('A1')の代わりにを使用する必要がありimg.anchor(ws.cell('A1'))ました。

import openpyxl

wb = openpyxl.Workbook()
ws = wb.worksheets[0]
img = openpyxl.drawing.Image('test.jpg')
img.anchor('A1')
ws.add_image(img)
wb.save('out.xlsx')
于 2019-02-05T10:38:12.307 に答える