python できること、パワーポイントのレポートを作成する際に
エクセル のまとめを貼り付ける方法を紹介します
本日の伝えたいこと
✔ pythonでパワポにエクセルを貼るときは、 画像として扱うと楽
困ったこと
Pythonで自動でパワポのレポートを作成する際、
内容
エクセルシートをPDFに変換
PDFを画像に変換
画像をpython-pptxを使ってパワーポイントに貼り付ける
メリット
エクセルでまとめたサマリや、表を添付できる
解決方法
エクセルシートをPDFに変換
Win32comという拡張モジュールを使う。
お決まりの既定の書き方があるのでそちらを参考にしてほしい
参考にしたサイト

PDFを画像に変換
Popplerという拡張モジュールを使う
めんどくさいと思うが、すぐ終わるのでやってみてほしい
基本手順としては、以下である
① Pdf2imageをpipでinstall >>pip install pdf2image
② Popperをダウンロードする
③ Python 内でpathを通す
参考にしたサイト

画像をpython-pptxを使ってパワーポイントに貼り付ける
for文でひらすら回すだけなので、わかりやすい別サイトのものを参考にしてほしい
python-pptxを使って自動で画像をパワポに張り付けることができる
参考にしたサイト

# -*- coding: utf-8 -*-
import win32com.client
import os
import pdf2image
from pathlib import Path
from PIL import Image
def export_to_pdf(excel_name, pdf_name):
WB_PATH = os.getcwd() + “/” + excel_name
PATH_TO_PDF = os.getcwd() + “/” + pdf_name
excel = win32com.client.Dispatch(“Exce l.Application”)
excel.Visible = False
wb = excel.Workbooks.Open( WB_PATH)
print(‘PDFへ変換開始’)
wb = excel.Workbooks.Open( WB_PATH)
# 書き出すシートの指定
ws_index_list = [1,2,3]
wb.WorkSheets(ws_index_ list).Select()
wb.ActiveSheet. ExportAsFixedFormat(0, PATH_TO_PDF)
wb.Close(SaveChanges=0)
excel.Quit()
def pdf_to_jpeg(pdf_name):
poppler_path = os.path. join(“poppler-0.68.0”, “bin”)
os.environ[“PATH”] += os.pathsep + poppler_path
pdf_path = os.getcwd() + “/” + pdf_name
pages = pdf2image.convert_from_path(pd f_path)
pdf_path = Path(pdf_path)
image_dir = Path(“./”)
for i, page in enumerate(pages):
file_name = pdf_path. stem + “_{:02d}”.format(i + 1) + “.jpeg”
image_path = image_dir / file_name
page.save(str(image_ path), “JPEG”)
im = Image.open(str(imag e_path))
#必要な部分のみクロップする
im.crop((304, 149, 2031, 780)).save(str(image_path), quality=95)
os.remove(pdf_path)
実際の現場で求められること
結局仕事が始まると、報告資料はパワポで求められる。
エクセルの画像をただ張り付けただけでもパワーポイントの形に
なっているだけで満足されるのだ。
社畜サラリーマンである以上右向けと言われたら右を向く
パワポを使えと言われたらパワポを使う
ただ、、、そういうものは全部pythonにやらせて
優雅にオフィスでコーヒー飲みたいものだ
まとめ
✔ pythonでパワポとエクセルを連携するときは、エクセルを画像で書き出す
コメント