PowerAutomateDesktopでPDFからテーブルを抽出する方法

coffee IT

PDFからテーブルを抽出する」では、PDFファイルからテーブル部分を読み取り、DataTable形式で取得することができます。

スポンサーリンク

PDFからテーブルを抽出する

PDFからテーブルを抽出するは、アクションペインのPDFから追加できます。
追加するとダイアログが表示されます。

全般

テーブルを読み取る対象となるPDFを指定します。ファイルの選択アイコンからファイルを選択すると、
パスが入力されます。パスは直接書いてもいいし、パスの一部に{x}から変数を使用することもできます。

抽出するページ

テーブルを読むページを指定します。すべてでは全ページが対象となります。
単一では単一ページ番号で読み取るページを指定、
範囲では開始ページ番号終了ページ番号で読み取る範囲を指定することができます。

詳細

詳細から、以下の設定が可能です。

パスワード

PDFがパスワードで保護されている場合、それを解除するためのパスワードを指定できます。
保護されてない場合は空欄でOKです。

ページの余白を超えるテーブルをマージする

マージ=結合。つまりページをまたいだテーブルをくっつけるか、分離して取得するかを指定できます。

最初の行に列名を含める

テーブルの一行目を見出し(列名)として扱うかどうかを指定できます。

生成された変数

変数の名前をクリックして変更可能です。{x}から別の変数に値を上書きすることもできます。
スイッチをオフにすると変数が生成されなくなります。

エラー発生時

エラー時の処理を設定できます。
詳細では、PDFが存在しない、パスワードが無効、テーブルを抽出できない場合の対処を個別に指定できます。

実行例

取得される変数(DataTable形式)は、塊としてはテキストとなり、
たとえば取得した変数をそのままExcelに書き込んでも、
こんな感じのよくわからない状態になります。
DataTableはこんな感じで中にデータが入っているのですが、
PDFからテーブルを抽出するで取得したテーブルにはそれぞれ0,1,2…とナンバーが振られるので、(変数名)[0]でひとつめのテーブルを指定することができ、
さらにその後ろに.DataTableを付けると、テーブルの中身を取得することができます。
なので仮にテーブルがひとつしかない場合、図のようにすれば、
テーブルの中身を取得することができます。

Pdf.ExtractTablesFromPDF.ExtractTables PDFFile: $'''C:\\Users\\User\\Desktop\\sunagitsu_test\\sunagtisu.pdf''' MultiPageTables: True SetFirstRowAsHeader: False ExtractedPDFTables=> ExtractedPDFTables
Excel.LaunchExcel.LaunchUnderExistingProcess Visible: True Instance=> ExcelInstance
Excel.WriteToExcel.Write Instance: ExcelInstance Value: ExtractedPDFTables[0].DataTable

# [ControlRepository][PowerAutomateDesktop]

{
  "ControlRepositorySymbols": [],
  "ImageRepositorySymbol": {
    "Name": "imgrepo",
    "ImportMetadata": {},
    "Repository": "{\r\n  \"Folders\": [],\r\n  \"Images\": [],\r\n  \"Version\": 1\r\n}"
  }
}
Microsoft Power Automate Desktop(PAD)アクション、使い方一覧
Power Automate Desktopの使い方を機能・分類別に参照できるまとめです。

コメント

モバイルバージョンを終了