【问题标题】:How can I export to CSV in an ASP.NET MVC application?如何在 ASP.NET MVC 应用程序中导出为 CSV?
【发布时间】:2011-04-02 20:08:46
【问题描述】:

我知道有人以多种方式提出和回答了这个问题,但没有一种方法能够触及我需要了解的问题的症结所在。在 WebForms 中,我们“颠覆”渲染过程并直接写入响应的输出流。如何使用控制器操作来实现这一点,将 CSV 写入 Excel 文件?

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    我一直在一个 asp.net mvc 应用程序中使用这个:http://www.filehelpers.net/,看看入门指南,你应该从那里得到它

    【讨论】:

      【解决方案2】:

      为了详细说明 Omu 的 FileHelpers 答案,我可以将此处的 @shamp00's ideasthis 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");
           }
      }
      

      【讨论】:

        【解决方案3】:

        您可以尝试http://develoq.net/2011/export-csv-actionresult-for-asp-net-mvc/ 中描述的 CsvActionResult

        【讨论】:

          【解决方案4】:

          与您编写任何其他文件的方式相同——使用 FileResult 及其后代。

          【讨论】:

          • 谢谢,现在我也知道怎么写其他文件了。
          猜你喜欢
          • 1970-01-01
          • 2023-04-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-14
          • 1970-01-01
          • 1970-01-01
          • 2016-08-04
          • 2012-01-12
          相关资源
          最近更新 更多