さて、Hello World
が出来たところで次はExcelの操作について書いていきましょう。
Excelの入出力がプログラムっぽく出来るのもUiPathの良いところです。
例題としてExcel化されたQiitaの投稿の一覧を「いいね」の順に並び変えてCSVに出力する、という事をやりたいと思います。
具体的な手順を書いていきます。
1.Excelを使う為のパッケージをUiPath Studioにインストールする
デフォルトではUiPath StudioにExcelを操作するためのActivityがインストールされていません。
パッケージの追加から始めましょう。
①ActivityペインのManage Packagesを選択します。
②Manage Packagesが表示されたらAvailableを選択し、UiPath.Excel.Activities
をインストールしましょう。
③ActivitiesにExcelとCSVが追加されたのを確認したら完了です。
2.Excelファイルを開いてみる
さて、こちらはQiitaのページの情報をExcel化したものです。実はこのデータもUiPathのdata scraping
という技術を使って作成したものです。(手順の詳細を記述した記事はこちら。)
カラムとしては、タイトル・URL・いいねの数を持っています。
※取得元のページ
※ページから情報を取得した結果のExcel
入力としてはこのデータを使っていきましょう。
Excelファイルを開くには、Excel application scope
というActivityを使います。
Inputは開きたいExcelのPathになります。プロジェクトフォルダの相対パスも使えますし、絶対パスでもOKです。
データを取り出すにはRead cell
または、Read Range
というActivityを使います。今回はRead Range
を使っていきましょう。
各Activityをドラッグ&ドロップで登録していきます。Read Range
はExcel application scope
の中にドロップしてください。
完成形は下記の様になります。
これは、UiPathのプロジェクトフォルダにある、test.xlsx
というファイルを開いて、"sheet1"にあるデータを全て取ってくる、という命令になります。
Read Range
のRangeが""となっています。この様に何も指定しない場合はシート全体をコピーする、という命令になります。
逆に"A1:B100"と書けば、A1セルからB100セルまでをコピーする、という命令になります。
Outputの型はdatatableです。VB.netを使われている方にはおなじみですよね?
ここではexcelData
という変数を定義して、その中にExcelから取得したデータを格納しています。
3.データを並び替える
これは、UiPathというよりもVB.netのノウハウになります。AssignというActivityを使ってデータを並べ替えていきましょう。
このAssign
はプログラムでいうと、=の役目を果たします。
①上記で作成したexcelData
をDataView
に変換します。まず、Assignを追加して下記の様にします。
①-1 DVという名前のDataView型の変数を定義する。
①-2 DVを左辺にして、右辺にはnew DataView(excelData)
とします。これにより、上記のexcelDataがDataView型になります。
4.CSVにファイル出力する
これにはwrite CSV
というActivityを使用します。これも、出力先のファイルはプロジェクトフォルダから見た相対パスでも絶対パスでも指定可能です。
下記の場合は、プロジェクトフォルダ直下にsortAfter.csvというCSVファイルを作ってこれを書き出す処理になります。
ちなみに、ファイルが存在している場合は上書き、存在していない場合は新規でファイルを作成してくれます。
3のステップで作成したDV
を.ToTable
でdatatable化すればそのままデータを吐き出してくれます。(便利)
上手く、「いいね」の数順にデータを吐き出すことができました。
ExcelとWebの連携は使い勝手が良さそうなので、色々と応用できそうですね。
次はWebの操作について書こうかと思います…