09 Excelファイル出力

前回は、csvファイルの出力を行いました。

csvファイルは、Excelアプリケーションで開くとExcelファイルと同じように見ることができますが、中身はテキストファイルなので、その作りはとてもシンプルです。

一方、Excelファイルはcsvファイルとは異なり、文字やセルを装飾できたり、複数のシートを含むことができる複雑なファイル形式です。

つまり、ロボットでExcelファイルを出力するときは、csvファイルとは違う手順で出力処理を行う必要があります。


【1】作成するロボットの概要

経費申請サンプルのページから、申請データ一の覧をExcelファイルに出力する。

《経費申請サンプルのページ》

  https://nowaydunno.home.blog/経費申請サンプル-01/

 ※実際に操作をしてみてくださいね。


【2】操作手順を考える

操作1:ブラウザで経費申請サンプルのページを開く。

操作2:ヘッダーをExcel型の変数に書き込む

以下、操作3~11は、表示されている申請データの一覧を繰り返す。

操作3:Noを抽出する。
操作4:状態を抽出する。
操作5:発生日を抽出する。
操作6:タイトルを抽出する。
操作7:金額を抽出する。
操作8:申請者を抽出する。
操作9:承認者を抽出する。
操作10:申請日を抽出する。
操作11:操作3~10をExcel型の変数に書き込む

操作12:最後に、Excel型の変数をファイルに出力する。


【3】タイプ(変数)を作成する

(1)プロジェクト・ビューの[研究ロボ]を右クリック→[新規作成]→[Type]をクリックします。


(2)次に、[タイプ名]に「経費申請情報.type」と入力して、[終了]をクリックします。


(3)タイプ[経費申請情報]が作成され、タイプ・エディタが表示されたら[+]をクリックして、変数をひとつずつ作成していきます。


《作成する変数の名前と種類》

名前種類
No整数(Integer)
状態ショートテキスト(Short Text)
発生日日付(Date)
タイトルショートテキスト(Short Text)
金額整数(Integer)
申請者ショートテキスト(Short Text)
承認者ショートテキスト(Short Text)
申請日日付(Date)

(4)これで、タイプと変数の作成は終わりです。画面左上の[すべて保存]をクリックして保存します。


【4】ロボットを作成する

【4-1】ロボットを新規作成して変数を追加する

(1)プロジェクト・ビューの[研究ロボ]を右クリック→[新規作成]→[Robot]をクリックします。


(2)次に、[ロボット名]は「経費申請出力.robot」と入力して、[次へ>]をクリックします。

そして、[ロボットを開始するURLを入力]に、経費申請サンプルのURLを入力して、[OK]をクリックします。

《経費申請サンプルのURL》

  https://nowaydunno.home.blog/経費申請サンプル-01/


(3)プロジェクト・ビューに[経費申請出力.robot]が作成され、ロボット・ビューに[Load Page]ステップが追加されて自動実行されます。ブラウザ・ビューには経費申請サンプルのページが表示されます。

ここで、さきほど作成したタイプの変数を追加するために、変数・ビューの左下にある[+]をクリックします。


(4)次に、[タイプと初期 / テスト値]のプルダウンメニューからタイプ[経費申請情報]を選択して、[OK]をクリックします。

すると、「変数に名前がありません」というメッセージボックスが表示されます。ここでは、名前はタイプ名と同じでよいので[はい]をクリックします。

これで、タイプの変数が追加されました。


(5)続けて、もうひとつ変数を追加します。

前述のとおり、Excelファイルは複雑なファイル形式のため、テキストファイルのように直接ファイルに書き込んでいくことができません。

ですから、一旦、Excel型の変数に書き込んでいき、最後にその変数をExcelファイルに出力するという手順で出力処理を行います。

 ※より詳しく知りたい方は、Kofaxのヘルプ「 Kofax Kapow へようこそ > チュートリアル > アドバンスド チュートリアル > Excel > Excel への書き込み」を参照してください。


(6)まず、変数・ビューの左下にある[+]をクリックします。


(7)次に、[名前]に「経費申請エクセル」と入力して、[グローバル]にチェックを入れます。そして、[タイプと初期 / テスト値]のプルダウンメニューから[Excel(シンプル)]を選択して[OK]をクリックします。

これで、Excel型の変数が追加されました。


【4-2】Excelファイルのヘッダーを書き込む

(1)画面上部の[選択したステップの前にステップを挿入]をクリック→[アクションステップ]をクリックします。


(2)次に、ステップ・ビューの[アクションを選択]をクリック→[変数を開く]をクリックします。


(3)ここで、[変数]はさきほど作成したExcel型の変数[経費申請エクセル]を選択してください。


(4)エンドポイントをクリックすると、ブラウザ・ビューにワークシートがが表示されます。これが、Excel型の変数[経費申請エクセル]です


(5)ここから、変数[経費申請エクセル]にヘッダーを書き込んでいきます。

A1のセルを右クリック→[修正]→[テキスト]をクリックします。


(6)次に、[値]に「No」を入力して[OK]をクリックします。


(7)続けて、B1のセルを右クリック→[修正]→[テキスト]をクリックします。


(8)次に、[値]は「状態」を入力して[OK]をクリックします。


(9)このように、タイプ[経費申請情報]の変数名を順番にヘッダーとして書き込んでいきます。


(10)そうすると、ヘッダー書き込みのステップが長くなってしまったので、グループ化しておきましょう。


(11)そして、[ステップ名]は[Excelヘッダー書き込み]と入力しておきます。


【4-3】繰り返しのステップを追加する

(1)エンドポイントをクリックします。そして、操作対象のウィンドウを変更するために、ブラウザ・ビューのタブ[経費申請サンプル(1/3)]を右クリック→[現在のウィンドウとして設定]をクリックします。


(2)次に、経費情報一覧の1件目のNoを右クリック→[ループ]→[テーブル繰り返し]→[最初の行を除外]をクリックします。


(3)すると、繰り返しステップ[For Each Tag Path]が追加され、1件目のデータに青枠(繰り返しの目印)が表示されます。イテレーションを進めて、青枠の動き(2件目→3件目→・・・・)を確認してください。


このような表形式のデータを繰り返す場合は、[テーブル繰り返し]を使うと便利です。ヘッダー部分を繰り返しに含めるかどうかは、[最初の行を含める]か[最初の行を除外]のどちらかで設定します。


【4-4】経費申請情報を抽出する

(1)イテレーションを[1]に戻して、青枠内のNoを右クリック→[抽出]→[数値]→[経費申請情報.No]をクリックします。


(2)そして、そのまま[OK]をクリックしてください。


(3)次に、青枠内の状態を右クリック→[抽出]→[テキスト]→[経費申請情報.状態]をクリックします。


(4)さらに、青枠内の発生日を右クリック→[抽出]→[日付]→[経費申請情報.発生日]をクリックします。


(5)そして、[テスト入力値]と[テスト出力]に発生日が表示されていることを確認してから、[OK]をクリックしてください。


(6)続けて、タイトル、金額、申請者、承認者、申請日を抽出します。


(7)すると、データ抽出ステップも長くなってしまったので、グループ化しておきましょう。


(8)そして、[ステップ名]は[申請データ抽出]と入力しておきます。


【4-5】Excel変数に書き込む

次は、抽出した値が入っているタイプ[経費申請情報]をExcel型の変数に書き込みます。この書き込み処理は繰り返しのたびに行われるので、新しいデータを既存データの後ろに追加してきます。

つまり、1行挿入してから1行書き込みという手順でデータを追加していきます。

 ※ブラウザ・ビューのワークシートに値を入力すると、Excel型の変数に値が書き込まれます。


(1)エンドポイントをクリックして、ブラウザ・ビューのタブ[経費申請エクセル]を右クリック→[現在のウィンドウとして設定]をクリックして、操作対象のウィンドウを変更します。


(2)次に、ワークシートの全件選択ボタンを右クリック→[設定]→[挿入]→[行]→[最後]をクリックします。


(3)ここで挿入する行数は1行なので、そのまま[OK]をクリックします。


(4)次に、A1のセルを右クリック→[設定]→[セット]→[行のコンテンツ]→[経費申請情報]をクリックします。


(5)そして、[日付フォーマット]はExcelファイルに出力したい日付の書式設定(ここでは「yyyy/MM/dd」)を入力します。

これで、タイプ[経費申請情報]を変数[経費申請エクセル]に書き込む処理ができました。


(6)イテレーションを進めて動作を確認してください。


【4-6】Excelファイルを出力する

このステップでは、変数[経費申請エクセル]をExcelファイルに出力します。

Excelファイルの出力処理は、Excel型の変数にすべてのデータを書き込んだ後に1度だけ行います。つまり、繰り返し処理の後に1度だけ行うということです。

繰り返し処理の後に実行するステップは、繰り返しステップの前にブランチを追加して、そのブランチの先に追加します。


(1)まず、繰り返しステップ[For Each Tag Path]の手前の矢印を右クリック→[ブランチを追加]をクリックします。


(2)次に、ブランチのエンドポイントを右クリック→[ステップを前に挿入]→[アクションステップ]をクリックします。


(3)そして、ステップ・ビューの[アクションを選択]→[ファイルシステム]→[ファイル出力]をクリックします。


(4)[ファイル名]は、出力するExcelファイルのフルパスを入力してください。

 例 : C:\Users\(ユーザー名)\Documents\経費申請情報.xlsx

(5)そして、[ファイルコンテンツ]は[経費申請エクセル]を選択して、[ファイルエンコーディング]は[windows 日本語 (windows-31j)]を選択します。


【4-7】値返却(Return Value)ステップを追加する

(1)最後に、値返却ステップを追加します。繰り返しステップの最後にあるエンドポイントを右クリック→[ステップを挿入]→[アクションステップ]をクリックします。


(2)次に、ステップ・ビューの[アクションを選択]をクリック→[値返却]をクリックします。

すると、ステップ名が[Return Value]に変更され、[変数]には[経費申請情報]が自動的に設定されます。


(3)これでロボットは完成です。画面左上の[すべて保存]をクリックして保存してください。


【5】ロボットを実行する

[デバッグ]をクリックしてから三角形のマークの[実行]をクリックして、ロボットを実行します。

処理が終了したら、次のことを確認してください。

  • ステータス・ビューに、経費申請一覧の情報が表示されている。
  • Excelファイルが正常に出力されている。

Excel型の変数・・・・イメージしにくいかも知れませんが、ロボットでExcelファイルを出力するときは、Excel型の変数を開く→書き込む→変数をファイルに出力する、という手順だということは覚えておいてくださいね。