【问题标题】:Export C# List to Csv file将 C# 列表导出到 Csv 文件
【发布时间】:2013-02-20 01:00:45
【问题描述】:

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

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

【问题讨论】:

  • 您的某些数据是否包含语音标记?查看您的代码,它正在做您要求它做的事情......
  • 我的数据中没有标记。但它的 (") 显示在每个值中。
  • writer.Write("\"");
  • 就像这样:0000000027" 0000000028" 0000000029" 0000000030" 0000000031" 0000000032" 0000000033" 0000000034" 00000000365"

标签: asp.net-mvc-3


【解决方案1】:
  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");

【讨论】:

  • 这次我得到了字符串中的最后两个字符。比如,实际值 => 0000000043。但我只得到 43。
  • order.ItemNumber的类型是什么?
  • 那为什么要像以前那样使用字符串格式。请参阅我编辑的答案。
  • 在这种情况下,您的 order.ItemNumber 不是字符串类型。
  • 它是一个字符串和唯一类型。
猜你喜欢
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 2020-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-20
相关资源
最近更新 更多