見出し画像

【UiPath】データ テーブルを Excel に書き込みの使い方

今回は「データ テーブルを Excel に書き込み(Write DataTable to Excel)」について記載します。

これが微妙にめんどくさい兵・・

モダンアクティビティは基本StudioX基準なのでそっちを見たほうが早いのかな?

データ テーブルを Excel に書き込み とは

名前の通りDataTable型の変数をExcelに書き込むアクティビティ。
だと思ってましたが、少し違う。

このアクティビティはメモリ内の DataTable 型データを取得して、Excel に書き込みます。Excel 内の場所の間でデータを移動する必要がある場合は、[範囲をコピー/貼り付け] アクティビティを使用します。

https://docs.uipath.com/activities/lang-ja/docs/write-range-x

ただこのアクティビティ。DataTable型でなくても同一Excel内のデータを読み込んで書くということもできるみたい。

アクティビティ

書き込む内容の部分に、このように別シートや別範囲を指定して、そのまま同一Excelに書き込むといったことができる。

ただ何か穴がありそうなので、あまり使用はしないでおこう(見づらいし)

プロパティ


プロパティ

プロパティはこんな感じ。ヘッダーを除外は見たまんまなので割愛。

追加は選択すると、データは対象範囲内の最初の空白行から追加され、選択しない場合、データは対象範囲の最初の行から追加され、既存のデータが置き換えられというもの。

要するに上書きしたい場合は追加のチェックを外さないといけないが、この追加のオプションが地味に分かりづらい

空のソースを無視はDataTableが空の場合はこのアクティビティが無視される(エラー発生時に実行を継続 と同じようなもの)

追加オプションで遊んでみた

まずExcelの形式を設定

Excel

ここにDataTableの内容を追加しようと思います。

DataTableの中身はこんな感じ

なぜか文具ではない

ターゲットをシートのみにして実行

ターゲットはシートのみ

まずは書き込むターゲットをシートのみにして実行してみたところ

最下行に追加されている

想定通り、最下行に追加されてました。

ターゲットをシートのみにして実行(間に空あり)

1行あけて消しゴムを入れてみた

つぎにえんぴつの次に1行あけて消しゴムが入った場合はどうなるのか試してみると。

最終行に追加された

消しゴムの上に追加されずに最終行に追加された。2行、3行あけても同じ結果なので、行追加は行われない模様。

ターゲットを範囲にて実行

A1からB6までを範囲で指定

ターゲットを範囲(A1~B6)までにして実行したらどうなるのか。

範囲外に書き込まれる

A7に追加されました。範囲を指定していた場合A3に追加されないことから、範囲を入れているとシートの時とは違う動きがされます。


ターゲットを範囲にて実行(間に空あり)

範囲は先ほどと同じA1~B6までにして、今度はA4に消しゴムを追加していまうす。この場合はどうなるのか。

先ほどと同じ

先ほどと同じでA7移行に追加されました。

ターゲットを範囲にて実行(範囲外に文字あり)

今度はA7に消しゴムがある状態だとどうなるのだろう。

上書きされる

上書きされてました( ;∀;)

結果

ターゲットをシートのみに指定している場合は、ちゃんと追加される(ただし行追加はされないので、あくまでも最下行に追加される)

ターゲットに範囲を含めた場合は、範囲外に上書きされるので、そもそも追加がされない

繰り返し (Excel の各行)の時にも思ったが、Excelモダンアクティビティのオプションはシートと範囲(Range)で動作が変わる気がする( ;∀;)




この記事が気に入ったらサポートをしてみませんか?