openpyxl 이미지 삽입 방법

openpyxl로 엑셀 작업시에 이미지를 추가해야 하는 경우가 있습니다. openpyxl 이미지 삽입 방법 함께 살펴보겠습니다.

openpyxl 이미지 삽입 방법

우선 이미지 파일을 읽어들여서 이미지 객체로 만들려면 openpyxl.drawing.image의 Image 클래스를 사용해야 합니다. Image 클래스에 파라미터로 사용할 이미지 경로를 전달해 주면 됩니다(라인 7).

그리고 워크시트에 add_image() 메서드로 해당 이미지 객체와 이미지가 들어갈 위치를 셀 위치값으로 전달해 주면 됩니다. 여기에서는 B2 셀에 이미지를 위치시켜보도록 하겠습니다(라인 8).

from openpyxl import Workbook
from openpyxl.drawing.image import Image

wb = Workbook()
ws = wb.active

img = Image('../example.png')
ws.add_image(img, 'B2')

wb.save('example_with_image.xlsx')
Python

위의 코드를 실행한 결과는 아래 그림과 같습니다.

그림 1. openpyxl 이미지 삽입 결과
그림 1. openpyxl 이미지 삽입 결과

이미지 크기 설정 방법

위의 경우에는 원본 이미지 크기가 그대로 들어가므로 예상한 공간을 벗어나는 문제가 생길 수 있습니다. 이미지의 width와 height를 지정해 보도록 하겠습니다. 단위는 픽셀 단위의 정수로 지정하면 됩니다(라인 8~9).

from openpyxl import Workbook
from openpyxl.drawing.image import Image

wb = Workbook()
ws = wb.active

img = Image('../example.png')
img.width = 200
img.height = 100
ws.add_image(img, 'B2')

wb.save('example_with_image.xlsx')
Python

이미지의 폭과 높이를 지정하면 아래와 같이 지정한 크기로 추가되게 됩니다.

그림 2. openpyxl 이미지 widht, height 지정하여 삽입한 결과
그림 2. openpyxl 이미지 widht, height 지정하여 삽입한 결과

관련 자료

openpyxl.drawing.image 문서와 worksheet 문서를 참고했습니다.

같이 읽으면 좋은 글

Leave a Comment