python パワポにエクセルを貼り付ける方法

未分類
この記事は約5分で読めます。

python できること、パワーポイントのレポートを作成する際に

エクセル のまとめを貼り付ける方法を紹介します

本日の伝えたいこと

 pythonでパワポにエクセルを貼るときは、 画像として扱うと楽

困ったこと

Pythonで自動でパワポのレポートを作成する際、 エクセルでまとめた結果をパワポに貼り付けられない

内容

エクセルシートをPDFに変換

PDFを画像に変換

画像をpython-pptxを使ってパワーポイントに貼り付ける

メリット

 エクセルでまとめたサマリや、表を添付できる

解決方法

エクセルシートをPDFに変換

Win32comという拡張モジュールを使う。

お決まりの既定の書き方があるのでそちらを参考にしてほしい

参考にしたサイト

PythonでExcelファイルをPDFに変換する方法 | クソざこCoding
Pythonを使ってExcelシートをPDFに変換する方法を書きます。 PythonでExcelファイルをいじるライブラリは色々あるみたいですが、今回はwin32comというモジュールを使用します。

PDFを画像に変換

Popplerという拡張モジュールを使う

めんどくさいと思うが、すぐ終わるのでやってみてほしい

基本手順としては、以下である

①   Pdf2imageをpipでinstall >>pip install pdf2image

②   Popperをダウンロードする

③   Python 内でpathを通す

参考にしたサイト

PythonでPDFを画像ファイル(JPEG、PNG)に変換する方法 - ガンマソフト
今回はPDFを画像ファイル(JPEG、PNG)にPythonで変換する方法をご紹介します。 PDFを画像ファイルに変換するには、通常は有料のAdobe® Acrobat®などのソフトを...

画像をpython-pptxを使ってパワーポイントに貼り付ける

for文でひらすら回すだけなので、わかりやすい別サイトのものを参考にしてほしい

python-pptxを使って自動で画像をパワポに張り付けることができる

参考にしたサイト

Pythonで画像ファイルをパワポに貼る - Qiita
内容 タイトル通りディレクトリにある複数の画像をパワポに自動で貼るプログラムです。 プログラム from pptx import Presentation from glob import glob # Presenta...
# -*- 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でパワポとエクセルを連携するときは、エクセルを画像で書き出す

コメント

タイトルとURLをコピーしました