将C#List导出到Csv文件

时间:2012-08-16 08:48:28

标签: asp.net-mvc-3

我试图将我的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");

我需要知道如何适当地分离字段值。任何人都可以帮助我。

1 个答案:

答案 0 :(得分: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");