【UiPath】データ テーブルを Excel に書き込みの使い方
今回は「データ テーブルを Excel に書き込み(Write DataTable to Excel)」について記載します。
これが微妙にめんどくさい兵・・
モダンアクティビティは基本StudioX基準なのでそっちを見たほうが早いのかな?
データ テーブルを Excel に書き込み とは
名前の通りDataTable型の変数をExcelに書き込むアクティビティ。
だと思ってましたが、少し違う。
ただこのアクティビティ。DataTable型でなくても同一Excel内のデータを読み込んで書くということもできるみたい。
書き込む内容の部分に、このように別シートや別範囲を指定して、そのまま同一Excelに書き込むといったことができる。
ただ何か穴がありそうなので、あまり使用はしないでおこう(見づらいし)
プロパティ
プロパティはこんな感じ。ヘッダーを除外は見たまんまなので割愛。
追加は選択すると、データは対象範囲内の最初の空白行から追加され、選択しない場合、データは対象範囲の最初の行から追加され、既存のデータが置き換えられというもの。
要するに上書きしたい場合は追加のチェックを外さないといけないが、この追加のオプションが地味に分かりづらい
空のソースを無視はDataTableが空の場合はこのアクティビティが無視される(エラー発生時に実行を継続 と同じようなもの)
追加オプションで遊んでみた
まずExcelの形式を設定
ここにDataTableの内容を追加しようと思います。
DataTableの中身はこんな感じ
ターゲットをシートのみにして実行
まずは書き込むターゲットをシートのみにして実行してみたところ
想定通り、最下行に追加されてました。
ターゲットをシートのみにして実行(間に空あり)
つぎにえんぴつの次に1行あけて消しゴムが入った場合はどうなるのか試してみると。
消しゴムの上に追加されずに最終行に追加された。2行、3行あけても同じ結果なので、行追加は行われない模様。
ターゲットを範囲にて実行
ターゲットを範囲(A1~B6)までにして実行したらどうなるのか。
A7に追加されました。範囲を指定していた場合A3に追加されないことから、範囲を入れているとシートの時とは違う動きがされます。
ターゲットを範囲にて実行(間に空あり)
範囲は先ほどと同じA1~B6までにして、今度はA4に消しゴムを追加していまうす。この場合はどうなるのか。
先ほどと同じでA7移行に追加されました。
ターゲットを範囲にて実行(範囲外に文字あり)
今度はA7に消しゴムがある状態だとどうなるのだろう。
上書きされてました( ;∀;)
結果
ターゲットをシートのみに指定している場合は、ちゃんと追加される(ただし行追加はされないので、あくまでも最下行に追加される)
ターゲットに範囲を含めた場合は、範囲外に上書きされるので、そもそも追加がされない
繰り返し (Excel の各行)の時にも思ったが、Excelモダンアクティビティのオプションはシートと範囲(Range)で動作が変わる気がする( ;∀;)
この記事が気に入ったらサポートをしてみませんか?