【Python】複数のExcelファイルをPDFファイルに変換する方法

PDFファイル(灰色)Python
スポンサーリンク
スポンサーリンク

「ExcelファイルをPDFファイルとして出力する方法は知ってます。でも、いちいち1ファイルずつ出力するのは面倒なんです。」

「できるなら、無料で出来る方法はありませんか?」

上記の疑問にお答えします。

Pythonのライブラリ「xlwings」を使用すれば、複数のExcelファイルをPDFファイルに変換することができます。

この記事では、以下について順番に説明します。

  • 複数のExcelファイルをPDFファイルに変換する手順と概要
  • 複数のExcelファイルをPDFファイルに変換するための準備
  • ソースコードの提示&解説

 

 

「偉そうに語るおまえは誰やねん。」と思われるので、私のことも少し紹介させてください。

この記事を書いている私は、プログラミング歴は約6年で、一応IT業界に身を置いています。

本職での開発経験はありませんが、今でもPythonやWeb系のプログラミングを勉強しつつ、プログラミングスキルを活かして仕事の効率化を図ったり、ゲームをつくったりしています。

 

Excelのエクスポート機能をつかえば、PDFファイルに変換できますが、複数のファイルが対象となると繰り返し作業が大変ですよね。でも、提示したソースコードのコピペ&実行で、簡単に複数のExcelファイルをPDFファイルに変換することができるようになります。

複数ファイルの変換を無料でできるツールは、あまりないと思うので、この記事を参考にして、職場などで活用してみてください。

 

 

1.複数のExcelファイルをPDFファイルに変換する手順と概要

まず、どのようにExcelファイルをPDFファイルに変換するか説明します。

変換に必要なステップは次のとおりです。

  1. Pythonをインストールする。
  2. プログラムを実行するフォルダに以下を置く。
    ・実行するPythonのソースファイル
    ・変換対象のExcelファイル
  3. プログラムを実行する。

 

プログラムの概要ですが、ざっくりと次のようなことをしています。(詳細は後述)

  1. フォルダ内のExcelファイルを探す。
  2. ExcelファイルをPDFファイルに変換する。
  3. 2をファイル数の分だけ繰り返す。

 

この記事ではイメージがしやすいように、請求書の置き換えを例にして話を進めます。

変換前のExcelファイルたちが、

指定したフォルダ上でPDFファイルに変換されます。(ここでは「PDF_Files」を指定。)

 

2.複数のExcelファイルをPDFファイルに変換するための準備

プログラミング言語は、Pythonを使用します。

Pythonの準備がまだの方は、『Python3のインストール方法【導入は10分で完了!】』を参考に環境構築をしてみてください。

Python3のインストール方法【導入は10分で完了!】
Python3のインストール方法についてステップバイステップで説明しています。この記事に沿って手を動かしてもらえれば、迷うことなくインストールができます。

 

変換には、Pythonのライブラリ「xlswings」を使用します。

Pythonの環境構築が済んでいる方は、「xlswings」をインストールします。コマンドプロンプトを起動し、以下のコマンドを入力後にEnterキーを押下してください。

「Successfully installed ~」が表示されればインストールは成功です。

py –m pip install xlswings

 

・xlswingsとは

xlswingsはExcelを直接操作するPythonのライブラリのひとつです。

Excelを操作するライブラリは、openpyxlなどがあるのですが、調べた感触だとopenpyxlはPDF変換には向いていないようなので、xlswingsを選択しています。

xlswingsは使用するにあたって以下の条件があります。

  • Excelがインストールされている必要がある。
  • 動作するOSはWindowsとMacのみ。

Excelアプリケーションを直接使用しているので、今回のプログラムを実行するとExcelを起動したり、ファイルを開いたりしますが、そういうものなので気にせず実行してください。

変換はExcelの印刷範囲設定に従い行われます。
なので、事前にExcel側の印刷プレビューなど印刷範囲を確認し調整しておきましょう。

 

3.ソースコードの提示&解説

最後に、ソースコードの全文と解説です。

 

・全文と解説

import glob, xlwings as xw

excel_files = glob.glob("*.xlsx") #excelファイルをすべて取得
savefile_path = "C:/git-local/PDF_Files/" #出力先のパスを設定

App = xw.App() #単一のアプリ実行環境管理

#ExcelファイルをPDFファイルに変換
for i in excel_files:
filename = i.replace(".xlsx", ".pdf")
wb = xw.Book(i)
wb.to_pdf(path= savefile_path + filename, include=None, exclude=None, exclude_start_string='#', show=False)
wb.close()

App.quit() #アプリ実行環境を終了

 

1行目で、ファイルパスやファイル名を取得するために「glob」を、Excel操作するために「xlwings」をインポートしています。

3行目で、プログラム実行するフォルダ内のExcelファイルを取得しています。

4行目で、PDFファイルの出力先のパス指定をしています。今回はプログラム実行するフォルダ内に「PDF_Files」をつくり、そこを指定しています。この部分はご自身の環境に合わせてアレンジしてください。

6、15行目で単一アプリの実行環境の設定と終了をしています。

9~13行目で、ファイル数の数だけ、ExcelファイルをPDFファイルに変換しています。

12行目の補足ですが、それぞれのパラメータには次のような意味があります。

パラメータ説明
pathPDFファイルの出力先。“None”で指定しない場合は、Excelファイルと同じファイル名、ファイルパスになる。
includePDFファイルに変換するシートの指定。“None”で指定しない場合は、すべてのシートを同一PDFファイルとして出力。シート番号(1からカウント)とシート名で指定できる。
exclude変換を除外するシートの指定。“None”で指定しない場合は、除外なしで出力する。シート番号(1からカウント)とシート名で指定できる。
exclude_start_string除外するシートの先頭の文字列を指定。指定した文字列を先頭に持つシートは変換されない。デフォルトは“#”を設定。
show変換後にPDFファイルを非表示/表示するかの設定。“False”は非表示。

 

解説は以上です。

 

4.まとめ

以上、複数のExcelファイルをPDFファイルに変換する方法でした。

ソースコードはあまり複雑ではないので、理解しやすいかと思います。手間も少なく簡単に変換することができるので、この記事を参考にしつつ、実際にやってみてください。

 

PDFファイルをExcelやWordに変換したい方は、次の記事が参考になると思います。是非ご覧ください。

【Python】複数のPDFファイルをExcelファイルに変換する方法
Pythonを使用して、PDFファイルから必要なデータを抽出し、Excelファイルに転記する方法を解説しています。複数のPDFファイルをExcelファイルに変換することは困難ですが、必要なデータを抜き出し転記することは可能です。そのソースコードを公開&解説しています。
【Python】複数のPDFファイルをWordファイルに変換する方法
Pythonのpdf2docxライブラリを使って複数のPDFファイルをWordファイルに変換する方法を解説しています。この記事を読めば、簡単にたくさんのPDFファイルをWordファイルに変換することができます。

 

もし、あなたが次のいずれかに当てはまるなら、『Pythonの独学ロードマップ【独学方法の経験談有り】』が参考になると思います。

  • 「何か作ってみたい!」と、これからPythonの学習を始めようとしている
  • Pythonの学習をはじめてみて、「このやり方であっているのかな?」と不安を感じている

 

Pythonで、Webスクレイピングやデスクトップアプリ作成のために独学した経験をもとに、Pythonの学習ステップをまとめています。

独学は孤独になりがちなので、学習の参考に是非ご覧ください。

Pythonの独学ロードマップ【独学方法の経験談有り】
Pythonの独学ロードマップについて解説しています。プログラミング未経験だった私の経験をもとに、独学の進め方や学習に必要な情報を提供しています。

 

ご清聴ありがとうございました。