【Python】Pythonで簡単!PDFをExcelに変換するツールを作成しよう

プログラミング
広告
広告

皆さんこんにちは!

今回はPythonでPDFファイルの内容を読み取り、Excelファイルに書き出すツールを作成する方法をご紹介します。

このツールは、GUIを使用してPDFファイルを選択し、Excelファイルとして保存することができます。以下の手順とコードを参考にして、自分でツールを作成してみましょう。

広告
広告

ツールの特徴とメリット

今回作成したツールは、GUIを使用して簡単にPDFファイルを選択し、その内容をExcelファイルに保存することができます。以下に、ツールの特徴とメリットをまとめます。

  • 簡単な操作: GUIを使用しているため、プログラミングの知識がなくても簡単に操作できます。
  • 自動化: PDFファイルの内容を手動でコピーする手間を省き、自動でExcelに書き出せます。
  • 汎用性: 様々な種類のPDFファイルに対応可能で、異なる形式のPDFからテキストを抽出できます。

必要なライブラリのインストール

まず、必要なライブラリをインストールします。以下のコマンドをターミナルまたはコマンドプロンプトで実行してください。(anacondaの人はpipをcondaに変えてください)

pip install pypdf2 openpyxl

プログラムのコード

以下のコードを使用して、PDFファイルを読み取り、Excelファイルに書き出すツールを作成します。

import tkinter as tk
from tkinter import filedialog
import PyPDF2
import openpyxl

# PDFファイルを読み取る関数
def read_pdf(file_path):
    text = ''
    # PDFファイルをバイナリモードで開く
    with open(file_path, 'rb') as file:
        reader = PyPDF2.PdfFileReader(file)

        # PDFが暗号化されている場合、デクリプトを試みる
        if reader.isEncrypted:
            reader.decrypt('')

        # 全ページのテキストを抽出
        for page_num in range(reader.numPages):
            page = reader.getPage(page_num)
            text += page.extract_text()

    return text

# テキストをExcelファイルに保存する関数
def save_to_excel(text, excel_path):
    # 新しいExcelワークブックを作成
    workbook = openpyxl.Workbook()
    sheet = workbook.active
    sheet.title = 'PDF'

    # テキストを行ごとに分割してExcelに書き込む
    for i, line in enumerate(text.split('\n')):
        sheet.cell(row=i+1, column=1, value=line)

    # Excelファイルを保存
    workbook.save(excel_path)

# ファイル選択ダイアログを開く関数
def open_file():
    # PDFファイルを選択するダイアログを表示
    file_path = filedialog.askopenfilename(filetypes=[("PDF files", "*.pdf")])
    if file_path:
        # 選択したPDFファイルのテキストを読み取る
        text = read_pdf(file_path)
        # Excelファイルの保存先を指定するダイアログを表示
        excel_path = filedialog.asksaveasfilename(defaultextension=".xlsx", filetypes=[("Excel files", "*.xlsx")])
        if excel_path:
            # テキストをExcelファイルに保存
            save_to_excel(text, excel_path)
            # 処理が成功したことを通知するメッセージを表示
            tk.messagebox.showinfo("成功!", "PDFの内容をExcelに書き出しました!")

# メインウィンドウの設定
root = tk.Tk()
root.title("PDFをExcelに変換")

# 「Open PDF」ボタンを作成して配置
open_button = tk.Button(root, text="Open PDF", command=open_file)
open_button.pack(pady=20)

# GUIのメインループを開始
root.mainloop()

コードの説明

  • PDFファイルを読み取る関数 (read_pdf)
    指定したPDFファイルを開き、全ページのテキストを抽出して返します。
  • テキストをExcelファイルに保存する関数 (save_to_excel)
    抽出したテキストを行ごとにExcelファイルに書き込みます。
  • ファイル選択ダイアログを開く関数 (open_file)
    ファイルダイアログを表示し、PDFファイルを選択してその内容を読み取ります。その後、保存先を指定してExcelファイルに書き出します。
  • GUIの設定とメインループ
    tkinterを使用してGUIを作成し、PDFファイルを選択するためのボタンを配置します。

使い方

  1. 上記のコードをPythonファイル(例:pdf_to_excel.py)として保存します。
  2. ターミナルやコマンドプロンプトで以下のコマンドを実行してスクリプトを起動します。
python pdf_to_excel.py
  1. GUIが立ち上がるので、「Open PDF」ボタンをクリックしてPDFファイルを選択します。
  1. PDFファイルを選択すると、次にExcelファイルの保存先を指定するダイアログが表示されます。
  2. 保存先を指定すると、PDFの内容がExcelファイルに出力されます。

まとめ

Pythonを使用してPDFファイルの内容をExcelファイルに変換するツールの作成方法をご紹介しました。

PythonではPDFの他にもExcelやWordファイルと連携することができます。
以下の書籍がとても参考になりますので気になる人は確認してみてください。

Python自動化簡単レシピ Excel・Word・PDFなどの面倒なデータ処理をサクッと解決

新品価格
¥2,750から
(2024/6/11 15:57時点)

最後に

今回作成したコードとexeは下記リンク先に保存しています。
ファイル名は「pdf_to_excel.py」です。

また、exeファイルも作成しているのでダウンロードしたい方は下記リンクから右にある「Releases」を選択し、目的のexeファイルをダウンロードしてください。

GitHub - technyanko/python_tools
Contribute to technyanko/python_tools development by creating an account on GitHub.
人気ブログランキング

クリックするとブログランキングサイトに移動します。

にほんブログ村 IT技術ブログへ
インターネット・コンピュータランキング
広告
広告
プログラミング
広告
technyankoをフォローする
広告
プロフィール
technyanko

元情シス・SEです。
当ブログではPCに関して困ったことや役立つ情報を発信していきます。
たまにバッチスクリプトやPythonに関する記事も投稿します。

technyankoをフォローする
広告
タイトルとURLをコピーしました