csvhelperを使用して、オブジェクトのリストをブラウザのcsvファイルにエクスポートしたいと思います。 ドキュメントに表示されているのは、ファイルに直接書き込む方法だけです。csvファイルをエクスポート用の文字列として返すことはできますか?
私はこのようなことを試みましたが、「WriteRecords」メソッドはメモリストリームを閉じています:
c#
using (var memStream = new MemoryStream())
{
using (var csv = new CsvWriter(new StreamWriter(memStream)))
{
csv.WriteRecords(events);
return File(memStream, "text/csv", "Report123.csv");
}
}
はい。 それはほとんどのユニットテストが行うことです...
C#
using( var stream = new MemoryStream() )
using( var reader = new StreamReader( stream ) )
using( var writer = new StreamWriter( stream ) )
using( var csv = new CsvWriter( writer ) )
{
csv.WriteRecords( events );
writer.Flush();
stream.Position = 0;
var text = reader.ReadToEnd();
}
または同様のもの。 私はこれをメモリから行ったので、コンパイルされるかどうかはわかりません。 ;)
Joshに感謝します、それはそれをしました。 これは素晴らしいライブラリです!
どういたしまして。
グーグルでこれを見つけました、そして答えは少し古いので、これを見つけた他の誰かのために私がそれに更新を与えると思いました。
using (var writer = new StringWriter())
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture, true))
{
csv.WriteRecord(csvRow);
csv.Flush();
var newRecord = writer.ToString();
}
最も参考になるコメント
グーグルでこれを見つけました、そして答えは少し古いので、これを見つけた他の誰かのために私がそれに更新を与えると思いました。