2

したがって、Excelドキュメントに入力する文字列が次のように設定されているとします。

output.WriteLine(string.Format("{0},{1},{2},{3}",
                                                   var1,
                                                   var2,
                                                   var3,
                                                   var4
                                                   ));

これで通常、それぞれvarが別々のセルに入ります。ただし、私varのsの1つにコンマが含まれている場合、それはセルの終わりとして扱われ、次のセルに移動することがわかりました。var設定を維持しながら、sのコンマを無視するにはどうすればよいですか?

4

3 に答える 3

6

これはあなたが作成しているCSVファイルだと思います。そのため、コンマを含む値を二重引用符で囲む必要があります。すべてをラップすることができます(これは次のように簡単です:

output.WriteLine(string.Format("\"{0}\",\"{1}\",\"{2}\",\"{3}\"",
                                                   var1,
                                                   var2,
                                                   var3,
                                                   var4
                                                   ));

または、次のような小さなヘルパー関数を作成することもできます。

public string EncodeCell(string value) {
   return value.Contains(",") ? String.Format("\"{0}\"", value) : value;
}

そして、次のことを行います。

output.WriteLine(string.Format("{0},{1},{2},{3}",
                                                   EncodeCell(var1),
                                                   EncodeCell(var2),
                                                   EncodeCell(var3),
                                                   EncodeCell(var4)
                                                   ));
于 2012-11-14T21:15:05.050 に答える
1

コマをどのように入力するかによって異なります。最も簡単なこと:

var1.Replace(",", "string to replace comma for")
var2.Replace(",", "string to replace comma for")
var3.Replace(",", "string to replace comma for")
...

list / arrayとString.Joinを使用すると、それもはるかに簡単になります。

于 2012-11-14T21:15:06.577 に答える
1

var選択したエスケープシーケンスで挿入する前に、sのコンマをエスケープしてください。

于 2012-11-14T21:13:37.237 に答える