如何在ASP.NET MVC应用程序中导出到CSV?

时间:2010-08-23 19:42:06

标签: asp.net-mvc

我知道这个问题已经在几个方面得到了回答,但没有一个能够解决我需要理解的问题。在WebForms中,我们“颠覆”渲染过程并直接写入Response的输出流。如何使用Controller Action实现这一目标,将CSV写入Excel文件?

4 个答案:

答案 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/,看看入门指南,你应该从那里得到它