相关疑难解决方法(0)

StringWriter或StringBuilder

是什么区别StringWriterStringBuilder,当我应该使用一个或其他?

.net stringbuilder stringwriter

65
推荐指数
4
解决办法
3万
查看次数

将DataTable转换为CSV流

目前有一个DataTable,但希望通过WebHandler将其流式传输给用户.FileHelpersCommonEngine.DataTableToCsv(dt, "file.csv").但是它会将其保存到文件中.如何将其保存到流中呢?当我知道高级列或它们没有改变时,我知道如何做到这一点,但我想直接从数据表生成列标题.

如果我知道列,我只是创建类:

[DelimitedRecord(",")]
public class MailMergeFields
{
    [FieldQuoted()]
    public string FirstName;
    [FieldQuoted()]
    public string LastName;
}
Run Code Online (Sandbox Code Playgroud)

然后使用FileHelperEngine并添加记录:

FileHelperEngine engine = new FileHelperEngine(typeof(MailMergeFields));

MailMergeFields[] merge = new MailMergeFields[dt.Rows.Count + 1];

// add headers
merge[0] = new MailMergeFields();
merge[0].FirstName = "FirstName";
merge[0].LastName = "LastName";

int i = 1;              
// add records
foreach (DataRow dr in dt.Rows)
{
    merge[i] = new MailMergeFields();
    merge[i].FirstName = dr["Forename"];
    merge[i].LastName = dr["Surname"];
    i++;
}
Run Code Online (Sandbox Code Playgroud)

最后写入一个流:

TextWriter writer = new StringWriter();
engine.WriteStream(writer, merge); …
Run Code Online (Sandbox Code Playgroud)

c# csv datatable

29
推荐指数
2
解决办法
11万
查看次数

标签 统计

.net ×1

c# ×1

csv ×1

datatable ×1

stringbuilder ×1

stringwriter ×1