tabulaのconvert_into関数でPDFファイルをExcelに変換

    近頃は資料の表がPDFで届くことも増えています。

    PDFは容易に書き換えされないといったリットもありますが、何かの資料に使う場合はExcelなどの形式に変換しなければいけません。

    今回はPythonを使ってPDFからExcelに変換する⽅法を紹介します。

    あわせて読みたい
    - YouTube YouTube でお気に入りの動画や音楽を楽しみ、オリジナルのコンテンツをアップロードして友だちや家族、世界中の人たちと共有しましょう。

    サンプルPDFファイルは下のボタンからダウンロードすることができます

    このパッケージを利⽤するには、PythonのほかにJavaというプログラミング⾔語の実⾏環境も必要です。

    https://www.java.com/ja/download/

    PDFから表を抜き出すためにtabulaパッケージを使っています。

    目次

    tabulaパッケージとは?

    tabula は、PDF ファイルから CSV および Excel ファイルにデータを抽出するための無料のオープンソース ツールです。 これは Java で記述されており、コマンド ラインから、または Java アプリケーション内のライブラリとして使用できます。 Tabula を使用すると、クリック アンド ドラッグしてデータを強調表示するか、テーブル構造を自動的に検出して、PDF ファイルのテーブルから特定のデータを選択できます。 これは、明確で構造化されたレイアウトを持たない PDF ファイルからデータを抽出する場合に特に便利です。

    このパッケージ は 標 準ではインストールされないので、 AnacondaNavigatorを使うか、以下のコマンドでインストールしてください。

    conda install tabula-py

    to_ex.py

    import pandas as pd
    
    import tabula
    
    import os
    
    tabula.convert_into("旅行スケジュール.pdf","作業ファイル.csv",output_format="csv",pages='all')
    
    df=pd.read_csv("作業ファイル.csv",encoding="shift-jis")
    
    with pd.ExcelWriter("旅行スケジュール.xlsx") as writer:
    
        df.to_excel(writer,index=False)
    
    os.remove(“作業ファイル.csv")

    tabulaのconvert_into関数を使うと、PDFファイル内の表をCSVやTSV、JSON などの形式で書き出せます。

    CSVファイルで書き出す

    CSV(Comma Separated Values)ファイルとは、データをカンマで区切って保存するテキストファイルのことです。CSVファイルは、ExcelやGoogleスプレッドシートなどのスプレッドシートアプリケーションで使用されることが多く、データを交換するときによく使われます。

    CSVで書き出したい場合 は「output_format=”csv”」と指定します。また、PDFのページを指定したい場合は「pages=”1-2,3″」のように指定します。

    convert_into関数を実⾏すると、カレントディレクトリ内にCSVファイルが作成されます。

    convert_into関数とは

    convert_into関数は、Pandas パッケージに含まれる関数です。Pandas は、Python でデータを効率的に処理するためのライブラリです。指定したパスにある Excel ファイルを読み込んで、その内容を CSV ファイルに変換して保存することができます。これにより、Excel ファイルを CSV ファイルに変換することができます。

    それをread_csv関数で読み込み、to_excelメソッドでExcelファイルを保存します。

    read_csv関数とは

    read_csv関数は、Pandas パッケージに含まれる関数です。Pandas は、Python でデータを効率的に処理するためのライブラリです。指定したパスにある CSV ファイルを読み込んで、その内容を Pandas のデータフレームとして扱えるようにすることができます。これにより、CSV ファイルを Pandas で処理できるようになります。

    よかったらシェアしてね!
    • URLをコピーしました!
    目次