【发布时间】:2021-01-18 22:04:14
【问题描述】:
我正在将 CSV 文件从客户端上传到 .NET CORE Web Api 应用程序。
我正在使用 CsvHelper .net 库。
我成功接收文件,我想将其解析为我的自定义类,以便循环遍历来自 csv 的行。
但是每次我得到 Empty 结果就像没有行一样。
我不确定我的方法有什么问题:
[HttpPost("import")]
public async Task<ActionResult> ImportData([FromForm] IFormFile file)
{
using var memoryStream = new MemoryStream(new byte[file.Length]);
await file.CopyToAsync(memoryStream);
memoryStream.Position = 0;
using (var reader = new StreamReader(memoryStream))
using (var csvReader = new CsvReader(reader, System.Globalization.CultureInfo.InvariantCulture))
{
csvReader.Read();
var records = csvReader.GetRecords<SiteDto>();
}
return Ok("ok");
}
这就是我的 CSV 的样子:
我的网站 Dto:
public class SiteDto
{
public long Id { get; set; }
public string Name { get; set; }
public string Code { get; set; }
public string CompanyName { get; set; }
public string Location { get; set; }
}
【问题讨论】:
-
@maytham-ɯɐɥʇʎɐɯ 已经使用 try-catch 进行了尝试。这与标题有什么关系吗?请检查我的编辑
-
您是否尝试过更改类属性名称或手动提供Name attributes 以匹配您的 csv 文件?
-
@maytham-ɯɐɥʇʎɐɯ
using var不是这样工作的——当它超出范围时会被处理掉。 -
@stuartd 肯定同意,这就是我在睡觉时评论迟到时会发生的情况????
标签: c# csv .net-core memorystream csvhelper