はじめに
みなさんいかがお過ごしでしょうか。
今回はBizRoboのDSを使用して、CSVファイルからテキストファイルとExcelファイルに出力する方法を紹介したいと思います。
使用する機会があればぜひ使用してみてください。
あ、ちなみに別にテキストファイルやExcelファイルの出力先に関しては、お好みでお願い致します。
あえて2ついっぺんに紹介したいと思います。
処理概要
①上記図のようにCSVファイルの中身がこのようになっています。
②この図の中からステータスが「未提出」の人のみを抽出して、テキストファイルとExcelに転記します。
処理フロー
処理フローの参考例はざっとこんな感じです。
グループ化している箇所についてもこんな感じです。
設定方法
②CSVファイルを読み込み、Long Text型の変数に格納します
※「view as CSV」を使用して、CSVファイルの読み込みはできますがわざとやっていません。
③Short Textの今日日付という変数に日付を格納します。
形式:yyyyMMdd
④「Write File」ステップを使用し、ここで一旦txtファイルの出力を行います。
※1 筆者の場合は、Cドライブに「yyyyMMdd.txt」でファイルを出力します。
※2 ファイルコンテンツにはファイルの中身を設定できます。(この段階では何も書かなくても大丈夫です)
⑤「部分文字列繰り返し」というステップを使用します。
⇒文字列を指定の条件で区切ってループさせます。
この箇所の設定はこんな感じです。
デリミタ:コンプレッションを選択し、「"\r\n"」と入力してください。
ここではLong Textに格納している文字を改行で区切り、
改行区切りというShort Textの変数に改行で区切った文字列を格納しています。
⑥ヘッダーの名前が邪魔なので、値判定ステップで1行目をスキップさせます。
⑦また「部分文字列繰り返し」ステップを使用します。
今度は改行で区切った文字列を、カンマで区切ります。
改行で区切った文字列変数を入力値として、カンマ区切りというShort Text変数に格納します。
⑧カンマで区切った文字列をループさせます。
今回は、ステータスが未提出の人のみを抽出したいので「変数判定」ステップを使用します。
※エラー処理は「次のイテレーション」にします。
「未提出」という文字が無ければ次の行を見に行くようにします。
⑨「Write File」ステップを使用して、テキストファイルを出力します。
というよりは、ファイル追加にチェックを付けての出力になるので、元あるファイルの中身に追記みたいな感じですね。
ファイルの中身に追記する項目は、改行で区切った人をそのまま出力します。
※「ファイルに追加」のチェックは忘れないでくださいね。
⑩次にカレントウィンドウをExcelにし、行を挿入します。
行挿入の場所は最後にしてください。
カウントというInteger型の変数に0を代入してください。
(後で使用します。重要な役割を果たすので)
⑪もう1つ「部分文字列繰り返し」を置きます。
このループはExcelにカンマごとに出力するためのループです。
⑫カンマで区切った文字をExcelに出力します。一旦どこでもいいです。
⑫で、この状態だとずーっと同じ場所に書き続けるので上書きが行われます。
それを回避するために必要なのが、ループ前に使用した「カウント」という変数です。
範囲:行挿入した範囲
使用:指定位置の列
列:インデックスで指定
オフセット:値から変数に変更し、カウント変数を指定します。(初期値は0です)
すると、A列から順にカンマごとに出力します。
⑬で、カウント変数にインクリメントをしてあげてこのループは終了です。
⑭あとは、CSVのループが終了したらExcelとテキストファイルを出力するのみで完了です!
お疲れ様でした。
さいごに
あくまで参考です。
使用する機会があればぜひ使用してみてください。
さいごまでご覧いただきありがとうございました。