StudioXのアクティビティ

UiPath StudioXのファイル/フォルダーアクティビティ【CSV】

2021/07/01

CSVファイルは、最も汎用的な表データですので、扱ったことがある人も多いのではないでしょうか。

特に、Webシステムからデータをダウンロードする場合、CSV形式で保存されることが多いですね。

StudioXにもCSVファイルを入出力するためのアクティビティが用意されていますので、操作方法を確認しておきましょう。

この記事では、以下のアクティビティについて解説します。

記事編集時のStudioX - ver2022.4.4
  • CSVを読み込み
  • CSVに書き込み
  • CSVに追加

CSVを読み込み

指定したCSVファイルのすべてのエントリをExcel範囲、表またはシートにコピーするか、自動化プロジェクトにおいて後で使用するためにデータを保存します。(ガイドはこちら)

読み込んだCSVのデータを、StudioXに記憶したりExcelに書き込んだりします。

ここでは、以下の項目について解説します。

  • 読み込み元ファイル
  • 出力先
  • 先頭行をヘッダーとする
  • エンコード
  • 区切り文字
  • 引用符を無視

読み込み元ファイル

読み込むCSVファイルを指定します。

CSV形式のファイルであれば、問題なく取り込めます。

拡張子がCSV以外のファイルを読み込む

ファイルによっては、中身がCSVデータであるにもかかわらず、拡張子が"txt"(テキストファイル)だったり、"tsv"となっていることがあります。

しかし、[ファイルを参照]で指定しようとしても、CSVファイル以外表示されません。

この場合は、フォルダを移動した後、[ファイル名]に拡張子を含めたファイル名を入力して[開く]をクリックすればOKです。

例)ファイル名に"サンプル.txt"を入力

あるいは、[+]メニューの[テキスト]で、ファイルのパスを直接入力しましょう。

ノートブックにパスを記入しておいて、それを参照するのもいいですね。
おぐし

出力先

CSVから読み取ったデータを、どこに記憶するか指定します。

Excel(ノートブック)を指定すると、シートに値が書き込まれるので、その後はExcelアクティビティで処理できます。

また、[クリップボードにコピー]や[変数を作成]であれば、データテーブルのアクティビティで処理することになります。

先頭行をヘッダーとする

CSVファイルの先頭行がタイトル行である場合はチェックONに、そうでない場合はチェックOFFにしてください。

エンコード

CSVファイルの文字コードを指定します。

StudioXが標準で読み取るCSVファイルは、"UTF-8"です。この場合はエンコードの入力は省略OKです。

それ以外のコードであれば、エンコードに文字コードの種類を指定してください。

とはいえ、ほとんどの場合、文字コードは"UTF-8""か"Shift-JIS"です。

2つの文字コードに限られますが、どの文字コードなのかを確かめるには、メモ帳でCSVファイルを開くといいでしょう。

ANSIとは"標準規格"を意味し、文字コードの標準コードは"Shift-JIS"になります。

エンコードのポイント

  • 文字コードは"UTF-8"か"Shift-JIS"がほとんど。
  • ”UTF-8”の場合、エンコードの入力は空白でもOK。
  • メモ帳で開いたとき、ANSI = Shift-JISのこと。

補足

もし、”UTF-8"でも"Shift-JIS”でもない場合は、サクラエディタ(無料)をインストールして開くと確認できます。

サクラエディタサクラエディタ

区切り文字

項目ごとの区切りを指定します。

一番多いのはコンマ","でしょうか。その他に、タブ、セミコロン、キャレット、パイプを指定できます。

区切り文字 記号
タブ(Tab) (空白)
コンマ(Connma)
セミコロン(Semicolon)
キャレット(Caret)
パイプ(Pipe)

引用符を無視

引用符があった場合に、これを無視するかどうかをTrue/Falseで指定します。(省略時はFalseです)

ちょっと分かりにくいので、具体的に説明しましょう。

引用符とは、文字列を囲む記号のことを指します。記号はダブルクォート(”)です。

引用符のあるCSVとないCSVを、見た方が早いですね。

引用符あり 引用符なし
"名前","性別","年齢"
"桜井 奈央","女","79"
"原 たまき","女","60"
"浅利 なぎさ","女","76"
"吉永 弘也","男","23"
名前,性別,年齢
桜井 奈央,女,79
原 たまき,女,60
浅利 なぎさ,女,76
吉永 弘也,男,23

データを取り込む場合、通常引用符は取り除きます。

引用符を取り除きたくない場合は[引用符を無視]にTrueを指定してください。

言葉を付け足すとすれば、[引用符の除外を無視]でしょうか。

TrueとFalseでExcelに取り込むと、以下のようになります。

引用符を無視:True 引用符を無視:False

Excelアクティビティの利用を検討しましょう

CSVファイルは、Excelアクティビティでも操作できます。

ただし、条件が2つ。

CSVをExcelで取り込む条件

  • 文字コードがShift-JISである。(UTF-8も場合により可)
  • 引用符が使われていない。

この条件を満たしていれば、Excelのアクティビティで操作ができます。

検討してみてください。

+ UTF-8が「場合により可」とは?(クリック)

UTF-8とは、ユニコードという規格のひとつです。

ユニコードはUTF-8以外にも、UTF-16やUTF-32などがあり、テキストの文字コードがどのユニコードなのかを判別できるよう、テキストファイルの隅っこにひっそりと「BOM」という符号を付与しています。

StudioXのガイドに「バイトオーダーマーク」と書いてありますが、これがBOMのことですね。

Shift-JISなど、ユニコード以外のテキストでは、BOMは使われません。ここがポイント。

ただ、文字コードがユニコードであってもBOMが付与されていないテキストファイルもあります。

メモ帳などのテキストエディタであれば、BOMが無くてもユニコードかどうかを自動的に判別してくれます。

だけどExcelの場合そうはいかず、「BOMがない=ユニコードのテキストじゃない」と判断するため、文字化けを起こしてしまうんですね。

つまり、こういう事です。

BOMがあれば、Excelアクティビティが使えます。

BOMがないとExcelアクティビティが使えません。

BOMが付与されているかどうかは、サクラエディタで確認できます。

[Excelファイルを使用]でファイルを指定する時、種類の変更をお忘れなく。

CSVに書き込み

後で使用するために保存したExcel範囲、表、またはシート、あるいは表データをコピーし、指定したCSVファイルに貼り付けて既存のデータを置き換えます。(ガイドはこちら)

シートや表、テーブル、データテーブルの内容をCSVにエクスポートします。

ここでは、以下の項目について解説します。

  • 書き込み元
  • 書き込み先ファイル
  • ヘッダーを含める
  • エンコード
  • 区切り文字

書き込み元

Excelの範囲やテーブル、シートを指定します。

もしくは、データテーブルを記憶している名前やクリップボードを指定します。

書き込み先ファイル

エクスポートするCSVファイル名を指定します。

ファイルの種類が「CSVファイル」となっていますが、CSV以外の拡張子も指定可能です。

例えば、保存したいフォルダを移動した後、[ファイル名]に拡張子を含めたファイルを入力すればOK。

例)ファイル名に"出力データ.txt"を入力

ヘッダーを含める

CSVにエクスポートする際に、タイトル行を含める場合はチェックON、含めない場合はチェックOFFにしてください。

このとき、先頭行をタイトルとして認識するのは、テーブルとデータテーブルを[書き込み元]に指定した場合です。

それ以外(範囲やシート)を指定した場合、先頭行をタイトル行とは認識せず、"Column1,Column2・・・"というタイトルが追加されます。

タイトル行認識する タイトル行認識しない
【対象】
・Excelのテーブル
・データテーブル
【対象】
・Excelの範囲
・Excelのシート
【例】
【例】
【チェックON】
名前,年齢
桜井 奈央,79
原 たまき,60
浅利 なぎさ,76
【チェックON】
Column1,Column2
名前,年齢
桜井 奈央,79
原 たまき,60
浅利 なぎさ,76
【チェックOFF】
桜井 奈央,79
原 たまき,60
浅利 なぎさ,76
【チェックOFF】
名前,年齢
桜井 奈央,79
原 たまき,60
浅利 なぎさ,76

テーブルを含む場合にシートを指定したらどうなるでしょう?この場合もタイトル行を認識しません

エンコード

出力するCSVファイルの文字コードを指定します。

特に必要がない限りは指定しなくていいでしょう。

省略した場合は"UTF-8"で出力されます。

参考までに。日本語で主に使用される文字コードはこちらです。

  • UTF-8
  • Shift-JIS
  • EUC-JP
  • iso-2022-jp(JIS)

区切り文字

項目ごとの区切り文字を指定します。

指定できる区切り文字は、コンマを始め、5つの中から選択できます。

区切り文字 記号
タブ(Tab) (空白)
コンマ(Connma)
セミコロン(Semicolon)
キャレット(Caret)
パイプ(Pipe)

CSVに追加

後で使用するために保存したExcel範囲、表、またはシート、あるいは表データをコピーし、指定したCSVファイルの既存のデータの後に貼り付けます。(ガイドはこちら)

シートや表、テーブル、データテーブルの内容をCSVファイルに追加します。

[CSVに書き込み]が上書きとなる(元のデータが消える)のに対し、[CSVに追加]は元のデータに追加されるというのが違う点ですね。

ここでは、以下の項目について解説します。

  • 追加するデータ
  • 追加先ファイル
  • エンコード
  • 区切り文字

追加するデータ

Excelの範囲やテーブル、シートを指定します。

もしくは、データテーブルを記憶している名前やクリップボードを指定します。

なお、データに範囲やシートを指定した場合、タイトル行まで追加されるので注意が必要です。

例えば、範囲であればタイトル行を除いて指定すればいいのですが、シートの場合、タイトル行を外して追加できません。

もちろん、シートがタイトル行なしのデータであれば問題ありませんね。
おぐし

追加先ファイル

データを追加するCSVファイルを指定します。

[ファイルを参照]で追加するファイルを選択してください。なお、ファイルの種類がCSV以外の拡張子も選択できます。

この時、存在しないファイルを指定すると、新規にファイルを作成します。

追加するデータとファイルの項目数が合っているかなどの判定はされないので、自分で追加先に間違いがないかチェックしましょう。
おぐし

エンコード

出力するCSVファイルの文字コードを指定します。

日本語で主に使用される文字コードはこちらです。

  • UTF-8
  • Shift-JIS
  • EUC-JP
  • iso-2022-jp(JIS)

僕が調べた限りですが、エンコードは指定しておいた方がいいようです。

エンコードを指定しない場合、ちょっとおかしな動作になります。

例えば、[追加先ファイル]に指定したファイルがなく、新規にファイルが作成される場合、文字コードは"Shift-JIS"になります。

しかし、作成されたCSVファイルに、もう一度データを追加すると、なぜか文字コードが"UTF-8"で追加されます。

CSVファイルの文字コードを確認する方法は、[CSVを読み込み]のエンコードのセクションで解説していますので、参考にしてください。

調べた時点でのStudioXのバージョンは、2022.4.4です。

区切り文字

追加するCSVデータの、項目ごとの区切り文字を指定します。

指定できる区切り文字は、コンマを始め、5つの中から選択できます。

区切り文字 記号
タブ(Tab) (空白)
コンマ(Connma)
セミコロン(Semicolon)
キャレット(Caret)
パイプ(Pipe)

チュートリアルのすすめ

[CSVを読み取り]アクティビティについて、より理解を深めるため、「チュートリアル: CSV から Excel へのコピーと、ファイルのメール送信」を読むことをお勧めします。

また、チュートリアルを読み砕いて解説しましたので、こちらも併せて参考にしてください。

UiPath StudioXチュート読み砕き【CSVからExcelへのコピーと、ファイルのメール送信】

続きを見る

まとめ

CSVのアクティビティは、細かい部分で改善の余地があるなぁとは感じるものの、それでも十分に使えますし、必要とする機会は多いはず。

まとめます。

まとめ

  • [CSVを読み込み]は、使えるのであれば[Excel]のアクティビティを検討する。
  • [CSVを書き込む]では、読み取る対象のデータによりヘッダーが異なる。
  • [CSVに追加]は、追記するファイルがあるかないで文字コードが変わるので注意。

この記事で、何か1つでも新しい発見が得られたのなら、僕もうれしいです。

-StudioXのアクティビティ

© 2023 おぐしログのRPA入門