1
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?

【UiPath】ヘッダーのカラムが不足しているCSVを読み込む

Posted at

「ヘッダーのカラムが不足しているCSV」とは、つまるところヘッダーより多くの列を含む行が存在するCSVです。
例として以下のCSVでは、ヘッダーにあたる1行目が3つの列(A,B,C)なのに対し、3行目は4つの列(4,5,6,7)を含んでいます。

image.png

このようなCSVを「CSVを読み込み」アクティビティで読み込んだ場合、インプット.csv の CSV ファイル形式は無効です。行 x は、ヘッダー行よりも値を多く含んでいますと実行エラーになります。また、このエラーは「先頭行をヘッダーとする」プロパティのオンオフに関わらず発生します。

image.png

「CSVを修正する」というのが真っ当なアプローチではありますが、時と場合によってはこのようなCSVを読み込まざるを得ない場合もあるでしょう。その際に使える方法を紹介します。

1.ExcelでCSVを保存し直してから読み込む

CSVを一度Excelで開いて保存すると、自動的に不足分のカラムが保管され、空白のカラム名が足されます。

image.png

これを利用したのが、一度Excelで開いて保存してからCSVを読み込む以下のワークフローです。「CSVを読み込み」の前にExcelプロセススコープを配置し、開いて保存という動作だけを行わせます。

image.png

実行結果です。
以下のように正常に読み込むことができました。なお、空白のカラム名に対しては"Column + 数字"という名前が連番で割り振られていきます。

image.png

2.テキストで読み込みデータテーブルに変換する

こちらは「CSVを読み込み」を使わずに読み込むパターンです。
CSVをテキストデータとして読み込み、「テキストからデータテーブルを生成」でデータテーブルに変換します。

image.png

注意点として、「テキストからデータテーブルを生成」のプロパティは以下のように設定してください。

  • 「列ヘッダーを使用」と「CSV解析」をオンに変更
  • 「CSVを読み込み」と同様に全列をString型としたい場合は、「型を自動検出」をオフに変更

image.png

実行結果です。
こちらもCSVを一度Excelで開いて保存した場合と同様に、正常に読み込むことができました。

image.png

動作環境

UiPath.System.Activities 24.10.3

1
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
1
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?