【问题标题】:Why my csv file doesn't pass the internal CSVHelper test?为什么我的 csv 文件没有通过内部 CSVHelper 测试?
【发布时间】:2020-10-05 15:04:42
【问题描述】:

我正在尝试在我的项目中使用 CSVHelper。我创建了这些文件:

但在执行 JobApplicationCSV.WriteCSV 方法后,我得到了一个 CSVHelper 异常:

系统异常 H结果=0x80131500 Nachricht = 未找到名称为“公司”的标题。如果您希望缺少某些标头并希望忽略此验证,请将配置 HeaderValidated 设置为 null。您还可以更改功能以执行其他操作,例如记录问题。 Quelle = latex_curriculum_vitae Stapelüberwachung: 在 C:\Users\Sasch\source\repos\Visual Studio\latex_curriculum_vitae-dotnet\latex_curriculum_vitae\Services\CsvParserService.cs:line 51 中的 latex_curriculum_vitae.Services.CsvParserService.ReadCsvFileToJobApplicationModel(String path) 在 C:\Users\Sasch\source\repos\Visual Studio\latex_curriculum_vitae-dotnet\latex_curriculum_vitae\JobApplicationCSV.cs:line 17 中的 latex_curriculum_vitae.JobApplicationCSV.WriteCSV(String company, String jobtitle, String city, String joburl) 在 C:\Users\Sasch\source\repos\Visual Studio\latex_curriculum_vitae-dotnet\latex_curriculum_vitae\MainWindow.xaml.cs:line 106 中的 latex_curriculum_vitae.MainWindow.BtnGenerate_Click(Object sender, EventArgs e) 处

我在路径中预先创建了一个 CSV 文件,标题为:

公司、职位、城市、状态、EmailSent、JobOfferUrl

所以我实际上不知道为什么它没有通过测试。也许我错过了什么?

【问题讨论】:

  • 嗨。一小时前,我提交了最后的更改。我移除了石膏。

标签: .net-core csvhelper


【解决方案1】:

您使用的 CsvHelper 版本使用 CurrentCulture 来获取分隔符。看来你在德国,所以你的分隔符是“;”代替 ”,”。当前版本的 CsvHelper 强制您在 CultureInfo.InvariantCulture 的建议下将 CultureInfo 对象传递给 CsvReaderCsvWriter 以尝试调解此问题。

在您的CsvParserService 中尝试将以下内容添加到ReadCsvFileToJobApplicationModel()WriteNewCsvFile() 方法中。

csv.Configuration.Delimiter = ",";

【讨论】:

  • 谢谢@david-specht。我不知道,分隔符是文化依赖的。非常感谢。它现在按预期工作:-)
猜你喜欢
  • 2021-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多