您的位置:首页 > 编程语言 > ASP

ASP.NET MVC 导出CSV 的 CsvFileResult 类

2015-02-09 22:40 330 查看
public class CsvFileResult<T> : FileResult where T : class
{
private IEnumerable<T> _data;

public CsvFileResult(IEnumerable<T> data)
: base("text/CSV")
{
_data = data;
}

protected override void WriteFile(HttpResponseBase response)
{
var maxLine = int.Parse(ConfigurationManager.AppSettings["csvExport:MaxLine"]);

int count = 0;
var outPutStream = response.OutputStream;
using (var streamWriter = new StreamWriter(outPutStream, System.Text.Encoding.UTF8))
using (var writer = new CsvWriter(streamWriter))
{
writer.WriteHeader<T>();
foreach (var item in _data)
{
writer.WriteRecord(item);
count++;
if (count % 50 == 0)
{
streamWriter.Flush();
response.Flush();
}
if (count >= maxLine)
{
break;
}
}
}
}
}

实现依赖于CSVHelper

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: