0

C# リストを Csv ファイルにエクスポートしようとしていました。すべてがうまく設定されています。しかし、問題はフィールドセパレータが正しく機能していないことです。末尾に " が付いた文字列 (例: 0000324df") のように表示されます。これが私のコントローラーコードです。

IEnumerable stockexpo = stockexp; // Assign value
        MemoryStream output = new MemoryStream();
        StreamWriter writer = new StreamWriter(output, Encoding.UTF8);
        writer.Write("ItemNo,");
        writer.Write("Repeat Count");
        writer.WriteLine();
        foreach (StockResult order in stockexpo)
        {
            writer.Write(String.Format("{0:d}", order.ItemNumber));
            writer.Write("\"");
            writer.Write(",");
            writer.Write("\"");
            writer.Write(order.Count);
            writer.Write("\"");
            writer.Write(",");
            writer.WriteLine();
        }
        writer.Flush();
        output.Position = 0;

        return File(output, "text/comma-separated-values", "stockexp.csv");

フィールド値を適切に分離する方法を知る必要があります。誰でも私を助けることができます。

4

1 に答える 1

3
  writer.Write("\"");

このコード行は毎回 " を出力します。なぜそれがあるのでしょうか?

また、ファイルの終わりを区切る必要がないため、WriteLine の前にカンマを付けません。

IEnumerable stockexpo = stockexp; // Assign value
    MemoryStream output = new MemoryStream();
    StreamWriter writer = new StreamWriter(output, Encoding.UTF8);
    writer.Write("ItemNo,");
    writer.Write("Repeat Count");
    writer.WriteLine();
    foreach (StockResult order in stockexpo)
    {
        writer.Write(order.ItemNumber);
        writer.Write(",");
        writer.Write(order.Count);
        writer.WriteLine();
    }
    writer.Flush();
    output.Position = 0;

    return File(output, "text/comma-separated-values", "stockexp.csv");
于 2012-08-16T09:02:29.353 に答える