ミニプログラム

フォルダ内のエクセルファイルをすべてPDFに変換するプログラム

excel-to-pdf

指定したフォルダ内にあるエクセルファイルをすべてPDFファイルに変換するプログラムです。

pywin32というエクセル・ワードなどのOfficeソフトをWindows+Pythonで扱うためのライブラリを使用するので、pipにより事前にインストールしておきましょう。

pip install pywin32

ソースコード

import os
import win32com.client

excel = win32com.client.Dispatch("Excel.Application")
path = 'C:/abc/def/ghi'

for f in os.listdir(path):
    base, ext = os.path.splitext(f)
    if ext == '.xlsx' and '~$' not in base:
      wb = excel.Workbooks.Open(os.path.join(path,f))
      wb.WorkSheets(1).Select()
      wb.ActiveSheet.ExportAsFixedFormat(0, path + '/' + base + '.pdf')
      wb.Close()

コードの解説

1,2行目で今回使用するライブラリのインポートを行います。

4行目で操作したいソフトを指定(今回はエクセル)、

5行目でフォルダを指定します。

7行目以降でos.listdir()により指定したフォルダ内のファイルをすべて取得し、取得したファイルひとつひとつに対して処理していきます。

8行目でos.path.splitextによりbase, extにそれぞれ、ファイル名、拡張子を代入、

9行目以降で拡張子が.xlsx、つまりエクセルファイルのときに変換処理を行います。なお、エクセルでは先頭に~$という名前が付けられたファイルが一時ファイルとして作成されている可能性があるので、その一時ファイルを除くために'~$' not in baseという条件文も追加しています。

10行目でエクセルファイルを開き、11行目でWorkSheets(1).Select()によりシート1を選択、

12行目でExportAsFixedFormat(0)によりPDFに変換します。第二引数には保存先のファイルパスを指定します。ここでは、エクセルファイルと同一フォルダに「ファイル名.pdf」という名前で保存するコードになっています。

13行目でエクセルファイルを閉じて完了です。

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