안녕하세요.
오늘은 파이썬을 활용하여 간단하게 엑셀에 이미지 삽입하는 방법에 대해 알아보겠습니다.
파이썬 Openpyxl Image
▣ Openpyxl 패키지
pip install openpyxl
- 파이썬 환경에서 엑셀에 이미지를 삽입하는 방법은 그냥 엑셀 시트에 셀 크기 관계 없이 넣는 방법과 셀 크기에 맞게 넣은 방법 2가지가 있음.
1) 엑셀 이미지 삽입하기
- 단순히 폴더에 있는 이미지 파일을 엑셀에 삽입하는 행동을 파이썬으로 구현함.
import openpyxl as op
# 이미지 삽입 위한 모듈 import
from openpyxl.drawing.image import Image
# 엑셀 파일 및 시트 객체 생성하기
wb = op.Workbook()
ws = wb.active # 1번째 시트
# Image 파일 형성
path = r"./1.jpg"
img = Image(path)
# 엑셀 Sheet1 위치[A2]에 해당 이미지 삽입
ws.add_image(img,"A2")
wb.save(r"./test_excel.xlsx")
: 결과 확인하기
- 이미지 크기가 아래 예시처럼 엄청나게 클 경우, 자동화했을 때 다시 하나하나 다시 셀 크기에 맞게 조정해야 하므로 크기 조절 후 삽입해야함.
2) 셀 크기 조정해서 다수의 이미지 파일 삽입하기
- 좀 더 현실적인 상황을 위해 다수의 이미지 파일을 특정 크기에 맞춰 엑셀에 넣는 상황을 가정함.
- 엑셀 첫번째 열(A)에는 해당 이미지의 이름과 확장자명을, 두번째 열(B)에는 이미지를 삽입하는 반복문을 구현함.
import os
import openpyxl as op
from openpyxl.drawing.image import Image
wb = op.Workbook()
ws = wb.active
# 경로 설정
img_dir = './images'
img_file_list = os.listdir(img_dir)
# 반복문 만들기
for i, img_file in enumerate(img_file_list):
image_path = os.path.join(img_dir, img_file)
image = Image(image_path)
image.width, image.height = 100, 100 # 크기 설정
ws.add_image(image, anchor='B' + str(i + 1)) # B열부터 시작
if i==0: #폭 100 고정
ws.column_dimensions['B'].width = image.width
ws.row_dimensions[i+1].height = image.height #높이 100마다 변경
ws.cell(row=i+1, column=1, value=img_file) #A열에 이미지 생성
wb.save(r"./test_excel2.xlsx")
: 결과 확인하기
- 대강 100(폭), 100(높이)으로 설정하면 맞을 줄 알았으나 생각보다 엑셀에서 100의 폭이 큰거를 느낌.
- 특정 크기에 맞춰서 할려면 도형서식에서 크기 확인 후 픽셀 단위에 맞게 넣어줘야 딱 맞춰서 넣을 수 있음.
반응형
'Programming > Python' 카테고리의 다른 글
[Python] 파이썬 순위 매기기 (1) | 2023.12.21 |
---|---|
[Python] 환율 정보 가져오기 (4) | 2023.12.20 |
[Python] Tesseract OCR 이미지 추출하기 (4) | 2023.07.15 |
[Python] 텍스트 정렬 메소드 (rjust, ljust, center) (1) | 2023.04.18 |
[Python] 테스트 데이터 만들기 Faker (8) | 2023.04.10 |
댓글