タイトル分かりにくいですよね。すみません。。
背景としましては、
作業員の方が作業する際は、システムに40項目くらいある(横一列の)項目を一つ一つ手で入力していっているらしい。
ただ実はもう一つやり方があって、ExcelからデータをCtrl+Cでコピーして、基幹システムにそのままCtrl+Vで貼り付けるというやり方でもうまくいくらしい。
※Excelのイメージ図
UiPathで実行する際には、Excelからコピーをしてきて、Ctrl+Vで貼り付けるのが確実だろうということで、そちらを採用することにしました。
最大の課題:別にExcelからデータを取ってくるわけでもないのに、Excel開きたくねぇ
そうなんです。実はこのやり方を採用しようとしていて、、、
- データをいろんなところから取ってくる
- UiPath内部でデータテーブルを構築して、データテーブルに整理して格納する。
- Excel開く
- Excelに範囲を書き込み
- Excelからコピー
- システムに貼り付ける
3~5はできればExcel使いたくねぇ!!
となっていました。
そしてどうやったかといいますと。。。
ExcelはTabで区切られた一つの文字列らしい
Excelからデータをコピーしてメモ帳に貼り付けると、こうなるんですよ。
aa ii uu ee oo kaka kiki kuku keke koko
Excelってタブ区切りなのか!!
というわけで、
- データをいろんなところから取ってくる
- UiPath内部でデータテーブルを構築して、データテーブルに整理して格納する。
- Excel開く
- Excelに範囲を書き込み
- Excelからコピー
- システムに貼り付ける
これから、
- データをいろんなところから取ってくる
- UiPath内部でデータテーブルを構築して、データテーブルに整理して格納する。
- データテーブルを出力する
- (ヘッダーが一行目にくっついてきてしまうので)一行目を削除する
- カンマをタブに置換する
- システムに貼り付ける
これに置き換えました。ちなみにこれでいけました。すごい!
技術的な話
データテーブルを出力して、一行目を削除して、カンマをタブ区切りにした。
一行目を削除はこちら
str_data.Remove(0, str_data.IndexOf(vblf)+1)
カンマをタブ区切りにした(なぜかvbTabだとできなかったです。何が違うんだろう)
str_data.Replace(",", ControlChars.Tab)
です!
Excelがタブ区切りだってことに驚き!!しかも、技術的にそんな難しくないですね!
おわりに
Excelからコピーして何かに貼り付ける作業で、Excelを開きたくないことから始まった戦いですが、無事にExcelを開くことなく完成しました。
なかなかこの現象を伝えるのが難しいですが、うまく伝わりましたでしょうか...?
ぜひ活用してみてください!