Csvに追加で1行目を改行する方法

質問
データテーブルをcsvへ追記する際、一行目のデータだけ下図のように最終データの隣に連続した形で追記されてしまいます。
(理想の形はTH-10のように改行してほしいです)
スクリーンショット 2022-04-12 155726

このようになるのは仕様でしょうか?
どうしたら最終データの下に追記することができますか?

CSVに追記ではなく、CSVを読み込んで一度DataTable型にしてから、データテーブルをマージで行を追記してあげて、そこマージされたデータテーブルを改めてCSVに書き込みしてみてはいかがでしょう?

こんにちは

CSVを追記する前に一度AppendLineで空文字列を追記してみてはいかがでしょうか?

ありがとうございます。
こちら試してみたのですが、「競合するプロパティがあります : DataType プロパティの不一致」というエラーが出てしまいます。
マージするデータテーブルと、マージ先のデータテーブルは同一のカラム名です。

こちらで改行はできたのですが、書き込まれるデータが文字化けするようになってしまいました。
Append Lineのプロパティは、エンコードにShift-JISを入れたり、既定のエンコードをTrueにしてみたりしましたがいずれも問題が解決されません。
データテーブルの書き込みにはエンコードにShift-JISを設定しています。

Append Lineを入れない→文字化けしないが1行目が改行されない
Append Lineを入れる →改行されるが文字化けする

上記のような状態です。

こんにちは
AppendCSVアクティビティをお使いでしょうか?
このアクティビティは古くからエンコーディングの処理にバグがあり未だ直っていません。
以下ワークアラウンドがありますので、一度試してみてはと思います。

そっか。csvを読み込むと、データテーブルの列の型はstring型。今追記しようとするデータテーブルは、エクセルからだとobject型なので、発生するエラーになりますね。

メソッドを呼び出しアクティビティで、csv側のデータテーブルのImportRowメソッドで、持ち込んでみましょう

1 Like

ありがとうございます。
リンク先の通りに実施したらできました。
前々からエンコーディングに工夫が必要だと思っていましたが、バグだったのですね。

1 Like

解決されたようですね!

後学のために、貼っておきますね

image

EXCEL.Rows(0)をImportするように記述していますが、実際には「繰り返し(各行)」のCurrentRowを指定すればいいですね。

1 Like

大変勉強になります。こちらも機会があれば試してみたい方法です!
ありがとうございます。

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