ChatGPT+Python 入門編 読者特典③

【課題3】
 指定したフォルダにある同じサイズの画像をエクセルに貼り付ける

import os
from PIL import Image
from openpyxl import Workbook
from openpyxl.drawing.image import Image as XLImage
from openpyxl.utils import get_column_letter

# フォルダのパス
folder_path = r"C:\Users\gwing\Downloads\test"

# 新しいエクセルブックを作成
wb = Workbook()
ws = wb.active

# ヘッダを作成
ws['A1'] = 'File'
ws['B1'] = 'Image'

# jpgファイルのリストを取得
file_list = [f for f in os.listdir(folder_path) if f.endswith('.jpg')]

for i, file_name in enumerate(file_list, start=2):
    file_path = os.path.join(folder_path, file_name)
    
    # 画像の縦と横のピクセルを取得
    with Image.open(file_path) as img:
        width, height = img.size

    # エクセルにファイル名と画像のサイズを書き込み
    ws['A' + str(i)] = file_name

    # 画像をエクセルに追加
    img = XLImage(file_path)
    ws.add_image(img, 'B' + str(i))

    # セル幅を画像に合わせて調整
    ws.column_dimensions[get_column_letter(2)].width = width / 6  # rough conversion to Excel's unit
    ws.row_dimensions[i].height = height / 1.2  # rough conversion to Excel's unit

# ファイルを保存
wb.save(os.path.join(folder_path, 'all-image.xlsx'))