- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试在 C# 控制台应用程序中使用 CSVHelper。我有一个异常(exception):
CsvHelper.ValidationException: 'Header matching ['Numer Dokumentu'] names at index 0 was not found.
而且我不知道为什么因为这个标题在 csv 文件中他的位置。
这是我的 Program.cs
var packs = new List<Pack>();
using (var streamReader = File.OpenText("C:/.../file.csv"))
{
var reader = new CsvReader(streamReader);
reader.Configuration.RegisterClassMap<PackMap>();
packs = reader.GetRecords<Pack>().ToList();
}
和 Pack.cs
public class Pack {
public string NrDoc { get; set; }
public string recipientName { get; set; }
public string recipientAdress { get; set; }
public string recipientCity { get; set; }
public string packValue { get; set; }
public string packInfo { get; set; }
}
和 PackMap.cs
sealed class PackMap : ClassMap<Pack>
{
public PackMap()
{
AutoMap();
Map(m => m.NrDoc).Name("Numer Dokumentu");
Map(m => m.recipientName).Name("Kontrahent");
Map(m => m.recipientAdress).Name("Ulica");
Map(m => m.recipientCity).Name("Miasto");
Map(m => m.packValue).Name("Brutto");
Map(m => m.packInfo).Name("Opis");
}
}
在“PackMap.cs”中,我尝试使用 Index(0)、Index(1) 等,但没有任何变化。谁会告诉我我做错了什么?我必须在 CSV 文件中使用不同的 header 名称,在 C# 中使用不同的变量
这是我的 csv 文件:
Numer Dokumentu;Status;Data wyst.;Magazyn;Kontrahent;Ulica;Miasto;Netto;Brutto;Opis
FA/3/08/2017/1;;16.08.2017;MAGAZYN;Damianowa Firma;Nowa Lucyna Herc;Lublin;87;20;107;25;Wystawić fakturę. Uwagi klienta: 1
FA/1/10/2017/6;;28.10.2017;MAGAZYN;IBIS Marek Jeż;Jana Pawła II;Szubin;241;00;296;43;Wysyłka
FA/2/10/2017/6;;28.10.2017;MAGAZYN;Netia S.A.;ul. Poleczki 13;Warszawa;782;28;962;20;Wysyłka pobranie
最佳答案
您的文件不是逗号分隔的,因此您需要更改配置以使用 ;
而不是逗号。
reader.Configuration.Delimiter = ";";
关于C# CsvHelper.ValidationException - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47024481/
CSVHelper v23 中的重大更改包括“所有委托(delegate)现在都接受单个结构参数”。 PrepareHeaderForMatch 是这些委托(delegate)之一。我收到编译错误“委
我正在尝试使用 CsvHelper 来改进我从对象到 csv 记录/行的手动转换过程。我创建了一个复杂的 ClassMap我想用它来将对象列表写入文件。如何添加 ClassMap到 CsvHelper
我有一个使用 CSVHelper (v19.0.0) 的类库。我在 VS2019(版本 16.5.5;.NET 4.8.03752)中通过 Nuget 安装了 CSVHelper,并且可以确认该包位于
我有一个使用 CSVHelper (v19.0.0) 的类库。我在 VS2019(版本 16.5.5;.NET 4.8.03752)中通过 Nuget 安装了 CSVHelper,并且可以确认该包位于
我正在使用 CsvHelper 将小巧的对象转换为 CsvFile。我正在使用类映射来映射索引和名称映射的属性。问题是在按如下所述写入记录之前,我需要带有表标题的行: 没有标题的旧代码: usin
您好,我正在尝试使用 CsvHelper,并最终将我的数据写入 .csv 文件,但如果尝试读取数据,结果总是空的。它读取 header ,然后 csv.Read() 似乎跳过了所有数据。 Sperrn
在 CsvHelper 的早期版本中,我可以像这样设置默认分隔符: using var csv = new CsvReader(reader, CultureInfo.CurrentCulture);
我正在使用 CsvHelper 我需要用引号包裹所有值。 那可能吗? 数据 = 是一个列表 using (StreamWriter textWriter = new StreamWriter(pat
我正在尝试读取上传的 CSV 文件,在对数据执行任何操作之前,我需要检查第一个 header 名称以确保它是正确的文件。我一直在试图找到一种方法来做到这一点,但读者却跳到第二行。有没有直接选择其中一个
我的文件中有以下格式的数据。 HEADER|ReportItem Name: Margin Ri..... Account Id/Margin Id|Account Name|Ba...... //
我正在使用出色的 CsvHelper 库(当前为 v12.2.2)来生成 CSV 文件,并且我正在尝试添加我自己的自定义属性以直接在类中指定特殊格式。 我正在写的记录看起来像这样(尽管集成需要大约 2
我在变量中有一个字符串,而不是在文件中。 我可以使用 CSVHelper ( https://joshclose.github.io/CsvHelper/ ) 来解析字符串并将其映射到我的对象上吗?
我正在成功使用类CsvReader并对此感到满意,但是,我使用的文件是由一个小组生成的,该小组在不通知我的情况下更改了列格式。 因此,一会儿一切正常,然后第二天早上事情中断,csv.GetRecord
我正在尝试读取逗号分隔的 csv 文件,除非字段包含逗号,否则该文件在大多数情况下都不是文本限定的。一个例子是可以包含逗号的地址行。当发生这种情况时,列将在我的映射对象内分流。 AddressLine
我对 .NET 的 CsvMapper 有疑问。我正在使用类映射器将对象映射到这样的 csv 文件中: Map(x => x.ProductId).Name("ProductId"); 这工作正常,但
我对 .NET 的 CsvMapper 有疑问。我正在使用类映射器将对象映射到这样的 csv 文件中: Map(x => x.ProductId).Name("ProductId"); 这工作正常,但
我正在尝试将 CsvWriter 配置为使用特殊字符串“#NULL#”作为可为 null 的字符串属性。对于读者来说,它可以通过设置 csvReader.Configuration.TypeConve
我有一项服务接受包含需要批量插入数据库的 CSV 数据的输入流,并且我的应用程序尽可能使用 async/await。 过程是:使用CsvHelper的CsvParser解析流,将每一行添加到DataT
我有以下 CSV。 Org Defined ID,Username,FirstName,LastName,Attempt #,Attempt Start,Attempt End,Section #,Q
我有一个不可变类,我想写入和读取 CSV 文件。问题是我在读取 CSV 时遇到异常,尽管已经映射了对象并设置了一个应该允许它工作的配置。 为此,我使用 CsvHelper .不可变类如下所示。 pub
我是一名优秀的程序员,十分优秀!