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위의 코드를 실행한 결과는 아래 그림과 같습니다.
이미지 크기 설정 방법
위의 경우에는 원본 이미지 크기가 그대로 들어가므로 예상한 공간을 벗어나는 문제가 생길 수 있습니다. 이미지의 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이미지의 폭과 높이를 지정하면 아래와 같이 지정한 크기로 추가되게 됩니다.
관련 자료
openpyxl.drawing.image 문서와 worksheet 문서를 참고했습니다.