[HttpPost]
public async Task UploadFile(IFormFile file)
{
//...
}
byte[] fileBytes;
using (var ms = new MemoryStream())
{
await file.CopyToAsync(ms);
fileBytes = ms.ToArray();
}
using (var stream = new MemoryStream(fileBytes))
using (var reader = new StreamReader(stream))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
var records = csv.GetRecords().ToList();
//...
}
在上述示例中,MyObject 表示要存储 CSV 数据的对象类型。可以根据需要更改此类型的属性并在数据库中创建相应的表格。
最后,可以将对象列表保存到数据库中。以下是一个示例:
foreach (var record in records)
{
_dbContext.Add(record);
}
await _dbContext.SaveChangesAsync();
这就是将 CSV 文件上传并将行转换为对象的方法。