我知道这个问题已经在几个方面得到了回答,但没有一个能够解决我需要理解的问题。在WebForms中,我们“颠覆”渲染过程并直接写入Response的输出流。如何使用Controller Action实现这一目标,将CSV写入Excel文件?
答案 0 :(得分:3)
您可以尝试http://develoq.net/2011/export-csv-actionresult-for-asp-net-mvc/
中描述的CsvActionResult答案 1 :(得分:3)
为了详细说明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; }
}
控制器动作:
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");
}
}
答案 2 :(得分:2)
你写任何其他文件的方式相同 - 使用FileResult及其后代。
答案 3 :(得分:2)
我一直在asp.net mvc应用程序中使用这个:http://www.filehelpers.net/,看看入门指南,你应该从那里得到它