CSV(Comma-Separated Values)是一种常见的数据交换格式,每一行代表一条记录,每个字段由逗号分隔。.NET Core 是一个开源、跨平台的框架,用于构建现代、云基础的、连接的应用程序。
CSV文件通常包含以下类型的数据:
以下是一个简单的示例,展示如何从.NET Core控制器返回CSV文件:
using Microsoft.AspNetCore.Mvc;
using System.IO;
using System.Text;
public class DataController : Controller
{
public IActionResult DownloadCsv()
{
var data = new[]
{
new { Name = "Alice", Age = 30 },
new { Name = "Bob", Age = 25 }
};
var csvContent = GenerateCsv(data);
var stream = new MemoryStream(Encoding.UTF8.GetBytes(csvContent));
stream.Position = 0;
return File(stream, "text/csv", "data.csv");
}
private string GenerateCsv(object[] data)
{
var sb = new StringBuilder();
if (data.Length > 0)
{
var properties = data[0].GetType().GetProperties();
foreach (var property in properties)
{
sb.Append(property.Name).Append(",");
}
sb.Remove(sb.Length - 1, 1);
sb.AppendLine();
foreach (var item in data)
{
foreach (var property in properties)
{
sb.Append(property.GetValue(item)).Append(",");
}
sb.Remove(sb.Length - 1, 1);
sb.AppendLine();
}
}
return sb.ToString();
}
}
MemoryStream
可以有效地管理内存,特别是在处理大文件时。通过以上方法,你可以从.NET Core控制器返回CSV文件,并处理常见的相关问题。
领取专属 10元无门槛券
手把手带您无忧上云