UiPathでEXCELファイルにデータを書き込もう!

By | 2018年7月16日

UiPathでEXCELファイルにデータを書き込もう!

※2018.3よりUiPathがデフォルト日本語のアクティビティ名となりましたので、
この記事では各アクティビティや機能名を日本語名(英語名)というように記載しています。
※2018.2以前のバージョンではアクティビティを利用する前にExcel用のパッケージをインストールしておく必要があります
また、当然ながらMicrosoft Excelがインストールされていないと利用できません。
アクティビティのシステム>ファイル>ワークブック内にあるアクティビティは、
EXCELファイルのパスを指定することでEXCEL無しでも動作できるようです。

UiPathではEXCELアクティビティを使うことで、EXCELファイルから直接データを読み込むことができました。
今回は、その逆である書きこみを解説していきたいと思います。
複雑なことをすると何を覚えていいのかわかりづらくなりますので、
今回はシンプルに読み込んだファイルをそのまま違うファイル名で書きだしましょう。

1.Excelファイルを読み込む

前回の記事を参照して、test.xlsのファイルを読みこんでみましょう。
以下はファイルのデータ読み込みが終わった前提となります。

2.Excelアプリケーションスコープ(EXCEL Application Scope)アクティビティを追加する

書きこみを行う前に読み込みと同様、Excelアプリケーションスコープ(EXCEL Application Scope)アクティビティを追加します。
この時、図のようにファイルパスには書き込みを行いたい場所、およびファイル名を指定します。
書きこみの場合はファイルが作成されますので、すでに存在していなくても構いません。

3.実行(Do)スコープの中に「範囲に書き込む(Write Range)」アクティビティを追加する

次に範囲に書き込む(Write Range)アクティビティを追加します。このアクティビティは指定したシート名、およびセルの開始位置から、
指定したdatatable型の変数を書きこみます。今回は範囲を読み込む(Read Range)で先ほど読みこんだEXCELの内容をそのまま書きこみましょう。
※上の例では範囲を読み込む(Read Range)で「testtable1」というdatatable型の変数にtest.xlsxというEXCELファイルの内容を読みこませ、
それをtest2.xlsxというEXCELファイルに書き出そうとしています。

 

 

4.実行する

準備が終わったら実行(Run)しましょう。
実行が終わると、先ほど指定した場所にtest2.xlsxというファイルが作成されています。
なお、2回目以降は強制でtest2.xlsxの内容が上書きされますので注意してください。
特に、前の行数より後の実行のほうが行数が少ないときは古い情報と新しい情報が混ざってしまいますので、
注意が必要です。

(おまけ)

範囲に書き込む(Write Range)アクティビティのプロパティには1つのオプションがあります。

・ヘッダーの追加(Add Headers)

このチェックボックスをオンにすると、読み込む際にヘッダーの追加(Add Headers)のオプションがオンになっていた行を、
EXCEL書きこみの先頭行にヘッダー行として書きこむようになります。
もしヘッダーの追加(Add Headers)の設定がされていないものに対してこのチェックを入れて書きこんだ場合は、
「Column*」という列名が先頭に書きこまれます。(*の部分には列の順番が入ります
※2018.3では、範囲を読み込む(Read Range)でヘッダーの追加チェックを外してもヘッダーを取得しているようです。
バグかどうかもよくわからないので、このまま記述は残しておきます。