7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

お題は不問!Qiita Engineer Festa 2023で記事投稿!

【UiPath】CSVファイルを開く(Excel操作編)

Last updated at Posted at 2023-06-23

1.はじめに

 UiPathでCSVファイルを開く際に、「CSVを読み込み」をして、データテーブルにした後にExcelに転記するというような処理をしている人も多いかと思います。
 UiPathでもExcelアプリケーションによりCSVファイルを開くことができるため、その方法を紹介したいと思います。また、文字コードUTF-8の場合はそのまま処理すると以下のような文字化けが発生するので、対策も併せて紹介していきたいと思います。
image.png

2.環境情報

利用する環境は以下の通りとなります。

ソフトウェア名 バージョン情報
OS Windows10
UiPath Studio 22.10.5
UiPathプロジェクトの対応OS Windows
UiPath.System.Activities 22.10.4
UiPath.UIAutomation.Activities 22.10.5
UiPath.Excel.Activities 2.16.2

3.ユースケース

 以下のようなCSVファイルが存在するケースを考えます。

◆ケース1(文字コード:Shift_JIS)

 ケース1では文字コードShift_JISで以下のようなファイルを考えます。

data_Shift_JIS.csv
項目,価格,数量,金額
りんご,100,10,1000
"み""かん",20,100,2000
"もも","100","10","3,000"

◆ケース2(文字コード:UTF-8)

 ケース2では文字コードUTF-8で以下のようなファイルを考えます(ケース1と内容は同じです)。

data_UTF-8.csv
項目,価格,数量,金額
りんご,100,10,1000
"み""かん",20,100,2000
"もも","100","10","3,000"

 

4.実装方法

◆ケース1(文字コード:Shift_JIS)

<実装例>

 ケース1では以下のように「Excelファイルを使用」アクティビティを利用することで、処理することができます。
 image.png

<主なポイント>

ポイント①

 「Excelファイルを使用」アクティビティでCSVファイルを指定する場合、以下のようにファイルの種類を変更してください。
 image.png

<処理結果>

 image.png

◆ケース2(文字コード:UTF-8)

<実装例>

 ケース2ではテキストファイル(文字コードUTF-8)として読みとった後、文字コードShift_JISでCSVファイルに書き込みをします。
 その後はケース1と同様に処理をします。
image.png

<主なポイント>

ポイント①

 Windows対応のプロジェクトの場合Shift_JISが標準文字コードとなっていないため、文字コードShift_JISを利用する前に「メソッドを呼び出し」アクティビティで以下のような処理をする必要があります。同コードを実行することにより、Windowsデスクトップの.NET Frameworkに存在するが、.NETでは存在しないエンコードを取得し、利用可能なエンコードとして登録することできます。そのため、Shift_JIS文字コードを利用する予定がある場合は、ワークフローの先頭で同コードを呼び出すことをお勧めいたします。
image.png

項目 設定値
TargetType System.Text.Encoding
TargetObject 指定なし
MethodName RegisterProvider
コレクションパラメーター Direction:入力
Type:System.Text.EncodingProvider
Value:System.Text.CodePagesEncodingProvider.Instance

情報
Windowsプロジェクトで利用している.NET で使用できる標準の文字エンコーディングは、ASCII、UTF-7、UTF-8、UTF-16、UTF-32となっています。
また、Windowsレガシプロジェクトでは.Net Frameworkを利用しているため、本対応は不要となります。
https://learn.microsoft.com/ja-jp/dotnet/standard/base-types/character-encoding
https://learn.microsoft.com/ja-jp/dotnet/api/system.text.encoding.registerprovider?view=net-6.0
https://learn.microsoft.com/ja-jp/dotnet/api/system.text.codepagesencodingprovider?view=net-6.0

ポイント②

 「テキスト ファイルを読み込み」アクティビティにより、UTF-8でテキスト情報を取得します。
 プロパティのエンコードに「UTF-8」を指定します。
 image.png

ポイント③

 「テキスト ファイルに書き込み」アクティビティにより、Shift_JISでテキスト情報を書き込みます。
 プロパティのエンコードに「Shift_JIS」を指定します。
 image.png

警告
メモリ上に情報が保持されるので、CSVファイルの容量が大きい場合は注意してご利用ください

<処理結果>

 image.png

5.さいごに

 CSVの定義は公式的な仕様はありませんが、2005年10月、RFC 4180 で Informational(IESGの外部で決定された有用な情報の提供)として仕様が成文化されていますので、ファイルを作成する際には参考にして頂ければと思います。

◆主なポイント

  • 各レコードは、改行(CRLF)を区切りとする
  • 最終レコードの終端は、改行(CRLF)が存在してもしなくてもよい
  • ファイルの先頭は、通常行と同一の書式を持つ、ヘッダ行が存在してもしなくてもよい
  • 各フィールドは、それぞれダブルクォーテーションで囲んでも囲わなくてもよい
    ただし、ダブルクォーテーションで囲まれていないフィールドには、ダブルクォーテーションを含めることができない
  • 改行(CRLF)、ダブルクォーテーション、コンマを含むフィールドは、ダブルクォーテーションで囲むべきである
  • ダブルクォーテーションは、1つ前にダブルクォーテーションを付加し、エスケープしなければならない
7
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?