CSVファイルを生成しようとしましたが、これには4つのカラムが含まれています。 この列の1つは、名前で、姓と名がスペースで区切られています。CSVファイル内のスペースがカンマで検出されました
このテキストデータを.csv
ファイルに書き込むと、スペースがカンマで検出され、追加の列が追加されます。例:
Name - First LastName
がに変換:
Name | AdditionalColumn
First | LastName
ちょうど
Name |
First LastName |
次の方法で、私が使用してファイルを生成するには、次のようになります。すべての
public string Export(bool includeHeaderLine = true)
{
var sb = new StringBuilder();
//Get properties using reflection.
IList<PropertyInfo> propertyInfos = typeof(T).GetProperties();
if (includeHeaderLine)
{
//add header line.
foreach (PropertyInfo propertyInfo in propertyInfos)
{
sb.Append(propertyInfo.Name).Append(",");
}
sb.Remove(sb.Length - 1, 1).AppendLine();
}
//add value for each property.
foreach (T obj in _objects)
{
foreach (PropertyInfo propertyInfo in propertyInfos)
{
sb.Append(MakeValueCsvFriendly(propertyInfo.GetValue(obj, null))).Append(",");
}
sb.Remove(sb.Length - 1, 1).AppendLine();
}
return sb.ToString();
}
セパレータを含む値は、引用符で囲む必要があります。 – Kevin
列の名前を戻している列挙体としてPropertyInfoクラスが原因で問題が発生しています。これは、コードを投稿して修正することはできません。 – jdweng
「検出する」とはどういう意味ですか?あなたのコード*は、テキストをファイルに書き込むだけのCSVファイルを読み込みません。予期しない結果は、コードまたはデータによって引き起こされます。たとえば、プロパティ値にコンマや改行が含まれていないことを確認してください。 –