2010-08-23 84 views
2

我知道這個問題已經以多種方式提出並回答了,但是他們都沒有得到我需要理解的問題的癥結所在。在WebForms中,我們'顛覆'渲染過程並直接寫入Response的輸出流。如何使用控制器操作實現該操作,將CSV寫入Excel文件?如何在ASP.NET MVC應用程序中將其導出爲CSV?

回答

2

同樣的方式,你會寫任何其他文件 - 使用FileResult和它的後代。

+0

謝謝你,現在我知道如何寫任何其他文件中。 – ProfK 2010-08-23 19:55:46

3

描述只是爲了詳細闡述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"); 
    } 
} 
相關問題