首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSVHelper -无输出

CSVHelper -无输出
EN

Stack Overflow用户
提问于 2014-06-27 16:33:04
回答 3查看 3.2K关注 0票数 5

我正在尝试使用CSVHelper nuGet包创建csv文件。

这是密码

代码语言:javascript
复制
public ActionResult Test()
{
    var ms = new MemoryStream();
    var sr = new StreamWriter(ms);
    var csv = new CsvWriter(sr);

    csv.WriteField("sd");
    csv.WriteField("sd");
    csv.WriteField("sd");
    csv.WriteField("sd");

    //ms.Seek(0, 0);
    sr.Flush();
    //ms.Position = 0;
    var len = ms.Length;

    return File(ms, "text/csv", "test.csv");
}

但是,该文件始终为空。

我在这里读过几个问题,这些问题表明StreamWriter需要被冲淡。职位移到0。但是,我已经试过了,但这似乎行不通

我也尝试过对using语句进行MemoryStreamStreamWriterCSVWriter,我已经尝试了所有这些,但仍然是空的。

而且,MemoryStream的长度总是为零

我做错了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-06-30 11:44:19

我想明白了--我需要向FileContentResult传递一个字节数组,而不是流:

代码语言:javascript
复制
return File(ms.ToArray(), "text/csv", "test.csv");
票数 2
EN

Stack Overflow用户

发布于 2017-02-03 15:59:37

当CsvHelper没有输出时,最常见的原因是作者需要一个sw.Flush()

在没有配置的情况下使用CsvWriter

代码语言:javascript
复制
CsvWriter(sw); // with no configuration

通过使用配置IgnoreReferences = true,我想出了一个空的csv

代码语言:javascript
复制
CsvWriter(sw, new Configuration.CsvConfiguration() {
    Delimiter = ";", 
    IgnoreReferences = true
});

解决方案(完整示例)

代码语言:javascript
复制
var ms = new System.IO.MemoryStream();
var sw = new System.IO.StreamWriter(ms);
var csvOut = new CsvWriter(sw, new Configuration.CsvConfiguration() { Delimiter = ";", IgnoreReferences = true });

csvOut.WriteRecords(someCollection);

// IMPORTANT LINE
sw.Flush();

ms.Position = 0;
return File(ms, "text/csv", "resultFile.csv");

https://github.com/JoshClose/CsvHelper/issues/47上找到的提示

票数 1
EN

Stack Overflow用户

发布于 2014-06-27 16:50:51

确保在使用WriteField方法writer.NextRecord();将数据写入csv文件时,可以使用下面的代码:

代码语言:javascript
复制
using (var sw = new StreamWriter(@"test.csv"))
        {
            var writer = new CsvWriter(sw);
            writer.WriteField("Fist field");
            writer.NextRecord();
            writer.WriteField("Second field");
            writer.NextRecord();
            //add what you wana here
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24456734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档