概要
3枚あるPDFの請求書(同一フォーマット)から、「日付」「会社名」「金額」の情報を取得して、Excelファイルに転記します
ワークフロー全体図
アクティビティ
特殊フォルダーのパスを取得
データテーブルを構築
繰り返し(フォルダー内の各ファイル)
アプリケーションを開く
テキストを取得
代入
アンカーベース
画像を探す
データ行を追加
アプリケーションを閉じる
Excelアプリケーションスコープ
範囲に書き込む
変数
[名前]|[変数の型]
dName|String
→マイドキュメントのパスを格納
proName|String
→プログラムファイルのパスを格納
SeikyushoTable|DataTable
→構築したテーブル
SeikyuDate|String
→請求書の発行日
Company|String
→会社名
Amount|String
→請求金額
作成手順
はじめに
①[パッケージを管理]から、PDFのパッケージをインストールする(UiPath.PDF.Activities)
②同一フォーマットで3つの「請求書PDF」を用意
(ここでは、「請求書サンプル_1.pdf」「請求書サンプル_2.pdf」「請求書サンプル_3.pdf」というファイル名で使用)
→「日付」「会社名」「金額」の情報を取得してExcelに転記します
③書き込み先のExcelファイルを用意
(ここでは、「請求書リスト.xlsx」というファイル名で使用)
1.【特殊フォルダーのパスを取得】アクティビティをドロップ
→「請求書PDF」は「ドキュメント」配下に格納してあります。汎用性を持たせる為、[MyDocuments]のパスを取得し、ファイルを指定する際のパスに使います
変数「dName」(String)を新規作成
2.【特殊フォルダーのパスを取得】アクティビティをドロップ
→「Adobe Acobat Reader」は「Program Files」配下にある為、[ProgramFilesX86]のパスを取得し、アプリケーションを開く際のパスに使います
変数「proName」(String)を新規作成
3.【データテーブルを構築】アクティビティをドロップ
下記のように列を作成
→PDFから取得した各情報が入ります
[データテーブル]:SeikyushoTable
4.【繰り返し(フォルダー内の各ファイル)】アクティビティをドロップ
請求書フォルダーを指定して、3つの請求書PDFを順番に取得
[フォルダー内]:dName + “\UiPath\uipathred\howto22\請求書”
→1で取得したパス(dName)から繋げます
5.【アプリケーションを開く】アクティビティをドロップ
①「請求書PDF」の一つを後ろに開き、[画面上でウィンドウを指定]からパスを取得。パスを下記のように書き換える
[ファイル名]:proName + “\Adobe\Acrobat Reader DC\Reader\acrord32.exe”
→2で取得したパス(proName)から繋げます
②[引数]で「請求書PDF」ファイルを指定する。「-Path 」(後ろの半角スペースは必要)を入れて、直接開くようにする
[引数]:”-Path ” + CurrentFile.ToString
③[セレクターを編集]から、ファイル名(例.請求書サンプル_1.pdf)を「ワイルドカード(*)」にする
title=’請求書サンプル_*.pdf
6.【テキストを取得】アクティビティをドロップ
①「日付」を取得。「請求書PDF」の一つを後ろに開き、[ウィンドウ内で要素を指定]から「日付」を取得
[値]:変数「SeikyuDate」(String)を新規作成
②[セレクターを編集]から、日付を「ワイルドカード(*)」にする
ctrl name=’* ‘
7.【代入】アクティビティをドロップ
→「日付」を取得した際、スペースや改行も取得される為、取るためにChr関数を使って置換します
[右辺値]:SeikyuDate.Replace(” “,””).Replace(Chr(13), “”).Replace(Chr(10), “”)
[左辺値]:SeikyuDate
8.【テキストを取得】アクティビティをドロップ
①「会社名」を取得。「請求書PDF」の一つを後ろに開き、[ウィンドウ内で要素を指定]から「会社名」を取得
[値]:変数「Company」(String)を新規作成
②[セレクターを編集]から、日付を「ワイルドカード(*)」にする
ctrl name=’* ‘
9.【代入】アクティビティをドロップ
→「会社名」を取得した際、スペースや改行も取得される為、取るためにChr関数を使って置換します
[右辺値]:Company.Replace(” “,””).Replace(Chr(13), “”).Replace(Chr(10), “”)
[左辺値]:Company
10.【アンカーベース】アクティビティをドロップ
→「請求金額」を取得する際、【画像を探す】アクティビティでアンカー位置を指定して安定化させます
[アンカー位置]:AnchorPosition.Left
11.【画像を探す】アクティビティをドロップ
「ご請求金額」の位置を囲み指定する
12.【テキストを取得】アクティビティをドロップ
「請求金額」を取得。「請求書PDF」の一つを後ろに開き、[ウィンドウ内で要素を指定]から「請求金額」を取得
[値]:変数「Amount」(String)を新規作成
※【アンカーベース】で指定している為、セレクターを編集は不要
13.【代入】アクティビティをドロップ
→「請求金額」を取得した際、スペースや改行も取得される為、取るためにChr関数を使って置換します
[右辺値]:Amount.Replace(” “,””).Replace(Chr(13), “”).Replace(Chr(10), “”)
[左辺値]:Amount
14.【データ行を追加】アクティビティをドロップ
[データテーブル]:SeikyushoTable
→3.【データテーブルを構築】で作成した変数を指定
[配列行]:{SeikyuDate,Company,Amount}
→「日付」「会社名」「金額」が入った変数を配列で指定
15.【アプリケーションを閉じる】アクティビティをドロップ
「請求書PDF」の一つを後ろに開き、[画面上で指定]からパスを取得
16.【Excelアプリケーションスコープ】アクティビティをドロップ
PDFから取得した書き込み先のExcelファイルを指定
17.【範囲に書き込む】アクティビティをドロップ
[シート名]:”Sheet1″
[開始セル]:”A1″
[データテーブル]:SeikyushoTable
実行結果
→各請求書PDFの「日付」「会社名」「金額」が転記されました