私は次の方法を持っています:
public byte[] WriteCsvWithHeaderToMemory<T>(IEnumerable<T> records) where T : class
{
using (var memoryStream = new MemoryStream())
using (var streamWriter = new StreamWriter(memoryStream))
using (var csvWriter = new CsvWriter(streamWriter))
{
csvWriter.WriteRecords<T>(records);
return memoryStream.ToArray();
}
}
これはオブジェクトのリストで呼び出されます-最終的にはデータベースからですが、何かが機能していないため、静的コレクションにデータを入力しているだけです。渡されるオブジェクトは次のとおりです。
using CsvHelper.Configuration;
namespace Application.Models.ViewModels
{
public class Model
{
[CsvField(Name = "Field 1", Ignore = false)]
public string Field1 { get; set; }
[CsvField(Name = "Statistic 1", Ignore = false)]
public int Stat1{ get; set; }
[CsvField(Name = "Statistic 2", Ignore = false)]
public int Stat2{ get; set; }
[CsvField(Name = "Statistic 3", Ignore = false)]
public int Stat3{ get; set; }
[CsvField(Name = "Statistic 4", Ignore = false)]
public int Stat4{ get; set; }
}
}
私がやろうとしているのは、MVCアプリケーションにダウンロードするためにコレクションをcsvに書き込むことです。ただし、メソッドに書き込もうとするたびに、MemoryStreamは長さがゼロで戻ってきて、何も渡されません。私は以前にこれを使用しましたが、何らかの理由で機能していません-少し混乱しています。私がここで間違ったことを誰かが私に指摘できますか?
乾杯