CsvHelperでCSVファイルをダウンロード

 public ActionResult Export()
 {
     var records = new List<object>()
        { 
            new { Id = 123, Name = "abc"},
            new { Id = 456, Name = "xyz"},
        };
 
     // Output the csv file
     using (var memStream = new MemoryStream())
     using (var streamWriter = new StreamWriter(memStream) { AutoFlush = true })
     using (var csvWriter = new CsvWriter(streamWriter)) {
         csvWriter.WriteRecords((IEnumerable) records);
         streamWriter.Flush();
         memStream.Flush();
         memStream.Position = 0;
         return File(new MemoryStream(memStream.GetBuffer(), 0, memStream.ToArray().Length), "text/csv", "test.csv");
     }
 }
 

参考

パブリックに参照できるバッファーを持つ MemoryStream インスタンスを作成するには、MemoryStream、MemoryStream(Byte[], Int32, Int32, Boolean, Boolean)、または MemoryStream(Int32) を使用します。 現在のストリームのサイズを変更できる場合に、このメソッドを 2 回呼び出しても、メソッド呼び出しの間に基になるバイト配列のサイズが変更されると、同じ配列は返されません。 詳細については、「Capacity」を参照してください。

http://msdn.microsoft.com/ja-jp/library/system.io.memorystream.getbuffer(v=vs.110).aspx


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS