我知道这个问题已经以多种方式提出和回答,但没有一个能触及我需要理解的问题的症结所在。在 WebForms 中,我们“颠覆”渲染过程并直接写入 Response 的输出流。如何使用 Controller 操作将 CSV 写入 Excel 文件?
最佳答案
为了详细说明 Omu 的 FileHelpers 答案,我能够结合 @shamp00's ideas这里有 this answer here为了通过流即时将 CSV 呈现为 FileContentResult
。
给定一个像这样的 FileHelpers DTO 模型:
[DelimitedRecord(",")]
public class Foo
{
public string Name { get; set; }
public int Id { get; set; }
}
还有一个 Controller Action :
public FileContentResult DownloadFoosCSV()
{
var foos = GetFoos(); // IEnumerable<Foo>
var fileHelper = new FileHelperEngine<Foo>();
using (var stream = new MemoryStream())
using (var streamWriter = new StreamWriter(stream, Encoding.UTF8))
{
fileHelper.WriteStream(streamWriter, foos);
streamWriter.Flush();
return File(stream.ToArray(), "application/csv", "NewFoos.csv");
}
}
关于asp.net-mvc - 如何在 ASP.NET MVC 应用程序中导出为 CSV?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3551082/