データテーブルを指定行で分割する。

下記、フォーラムのYoichi様が作成いただいたものを参考に、ひとつのCSVを300行ずつに分割できるように作成中です。

下記のように作成しました。(いったん、3行ずつの分割で作っています)
Downloads.zip (10.8 KB)

「元データ.csv」が分割前のデータです。
数字が記載しているCSVが分割後のデータです。

元データの内容によるのですが、現在の内容だとこのようになってしまいます。
元データの内容を変えると、思ったように動くことがあります。

どうしたら、すべての列を分割できるのでしょうか。

お手数ですがご教授いただけますと幸いです。

こんにちは

CSVのパースの問題のようです。

CSV読み込みアクティビティの代わりに以下試してみてください。

 strData = System.Text.RegularExpressions.Regex.Replace(strData,"(?!\r)\n","")
1 Like

お伝えした部分は解決しました!ありがとうございます!!
ただ、分割後のCSVにすべて同じデータが記載されました・・・

ちなみに、繰り返し(コレクションの各要素)はobjectに変更しています

こんにちは

上記のリンク先のサンプルは、CSV書き込み後、書き込んだ部分を元データから削除するロジックを
いれているので上記の式になっていますので、おなじロジックを入れるか、
あるいは以下の式を使ってみてください。(この場合TypaArgumentはInt32になります)

dt.AsEnumerable.Skip(item*splitSize).Take(splitSize).CopyToDataTable

ご返信ありがとうございます。
試してみたところエラーが出ました・・

アップデート?をしたからかもしれないのですが、エンコードのところで引っ掛かりました。

エンコードを指定しないと文字化けします・・

ルーチン業務で使用しているほかのRPAロボットでも、同じような「shift_jis」に関係しているエラーが出ました。

こんにちは

以下参照してみてください

Book1.xlsx (558.2 KB)
基本がわかってなくてすみません・・エラーが消えません・。

また、こちらの式はどこに入力するのでしょうか。
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance)

こんにちは

メソッド呼び出しの、パラメータープロパティの編集ボタンを押すとダイアログが出ますので
上記POSTの画像の様に入力してください。型はEncodingProviderで検索すると出てくると思います。

エラーがなくなり、
shift_jisも使用できました!!
本当にありがとうございます!!

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.