目标Fx:.Net Core 2
CsvHelper: 6.0.0 (最新)
人CSV
Name
Nikhil
Person类
public class Person {
public string Name { get; set; }
public Address Address { get; set; } // Address has AddLine1, Addline2
}
个人地图
public class PersonMap : ClassMap<Person> {
public PersonMap() {
AutoMap();
我正在使用CSVHelper NuGet包,并得到了错误“字段不存在于CSV文件中”。这是我的代码:
using (TextReader prodFile = System.IO.File.OpenText(filePath))
{
CsvReader csv = new CsvReader(prodFile);
List<PulProduct> prodList = csv.GetRecords<PulProduct>().ToList();
}
类
public class PulProduct
{
public string
我正在使用Dapper查询一个我不知道返回的列的SQL过程。我想用CsvHelper将结果写入CSV文件。在运行时,我想动态忽略一些列。CsvHelper有一个只接受预定义类的映射配置。 var records = sqlCon.Query(sqlProcedure); //dynamic columns
using (var writer = new StreamWriter(@"file.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
var map =
我在一个变量中有一个字符串,而不是在一个文件中。 我可以使用CSVHelper (https://joshclose.github.io/CsvHelper/)来解析字符串并将其映射到我的对象上吗? 映射CSV文件的代码可以工作: TextReader reader = new StreamReader("data.csv");
var csvReader = new CsvReader(reader);
var records = csvReader.GetRecords<CarModel>(); 如何将其更改为将字符串映射到对象: String carmode
我第一次使用CSVHelper。
我有这样一个简单的CSV文件:
a,b,c
1,2,3
4,5,6
7,8,9
当我尝试使用以下代码读取它时:
using (var reader = new StreamReader(@"e:\a.csv"))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
// Do any configuration to `CsvReader` before creating CsvDataReader.
using (var dr = ne
我在数据库中加载了一个csv文件,但文件中没有DbId列。 我想把它导出回原来的格式。 我的csvhelper映射在带有Map(m => m.DbId).Ignore();的MyCsvClass中 标题没有问题,但输出数据仍显示DbId列的值:https://dotnetfiddle.net/XP2Vvq using CsvHelper.Configuration;
using System;
using System.IO;
namespace Test
{
class Program
{
static void Main(string[] args
我在用CsvHelper。要写入.csv文件,我需要一个基于类的头。
我手动编写标题,它可以工作,但读取时需要自动完成。
我能找到的所有文档都说要使用这个表达式,writer.WriteHeader<CSVDataFormat>();,但这不起作用,因为它需要做更多的工作。
以下是标题应该基于的类:
public class CSVDataFormat
{
public string FirstName { get; set; }
public string LastName { get; set; }
public float Wage { get; se
我正在处理一个项目,该项目将在CSV文件中序列化/存储对象。(是的,我知道这不是最好的做法,但这是必须的。)
我试图保持我的解决方案干净,所以我在解决方案中有多个项目,其中一个是包含存储/序列化方法的库项目。这个项目引用了CSVhelper,一个第三方库,我喜欢用它来做CSV操作。
A项目中的()
foo myobject = new foo(x,y,z);
B.WriteToCsv(myobject);
项目B中的 (my,引用csvhelper)
public static WriteToCsv(foo myobject); // csvhelper would do the work
但
我在我的c#项目中使用CSVHelper,并将一个很大的csv数据文件(大约2000条记录)读入内存。
如果记录在500以下,它工作得很好,它总是在不同阶段抛出IOException,这取决于网络或数字增加。我目前部署到Azure云平台,所以从blob存储到服务器的读取应该不会有任何网络问题。
CsvHelper.CsvParserException: A parsing error occurred.
Row: '995' (1 based)
---> System.IO.IOException: Unable to read data from the tran
我有一个不可变的类,我想要写入和读取一个CSV文件。问题是,在读取CSV时,我得到了一个异常,尽管我已经映射了对象,并设置了允许此配置工作的配置。
为了做到这一点,我使用了。不可变类如下所示。
public class ImmutableTest
{
public Guid Id { get; }
public string Name { get; }
public ImmutableTest(string name) : this(Guid.NewGuid(), name)
{
}
public ImmutableTest(Guid id
我有很多没有头的CSV文件,需要在C#中读取。我手动将头添加到其中一个文件中,使用下面的代码使用CSVHelper可以读取这些文件并在GridView中显示它们。
现在我的问题是,我如何在没有头文件的情况下读取这些文件?或者如何在第一行中使用CSVHelper添加标题(新记录)?
public Form1()
{
InitializeComponent();
List<Festival> records;
var config = new CsvConfiguration(CultureInfo.InvariantCultu
我经常遇到这样的错误:
CsvHelper.CsvReaderException类型的未处理异常发生在CsvHelper.dll中
附加信息:没有映射'RPS_String_Parse.Program+FormattedRow‘类型的属性。
但我相信我是正确的跟踪。在引用“入门”部分之后,我实现了以下内容:
using (var sr = new StreamReader(filePath))
{
var csv = new CsvReader(sr);
var records = csv.GetRecords<FormattedRow>();
将C# record定义为
public record Traffic(TrafficType Type, string Wan, string Lan, string Domain, string Org, IPAddress SrcIp, string SrcMac, IPAddress DestIp,
string Protocol, string Scheme);
当我试图通过
var all = new List<Traffic>();
// ...populate all
using var writer = new StreamWriter("
所以我一直在读,我不应该写我自己的CSV读取器/作者,所以我一直试图使用通过nuget安装的CsvHelper库。CSV文件是一个灰度图像,其中行数是图像高度,数字列是宽度。我想将值按行读取到单个List<string>或List<byte>中。
到目前为止,我的代码是:
using CsvHelper;
public static List<string> ReadInCSV(string absolutePath)
{
IEnumerable<string> allValues;
using (TextReader fil
这是我的原始代码,在没有CsvHelper的情况下写入CSV文件。
public static void Write(string file, List<PayRecord> payrecords) {
using(StreamWriter sw = new StreamWriter(file)) {
sw.WriteLine("EmployeeId,Gross,Tax,Net");
foreach(PayRecord c in payrecords) {
string line = string.Format("{
我使用CsvHelper从CSV读取数据,尽管在每个字段上都使用了属性,但它抛出了一个错误“构造函数的参数数不正确”。样本如下:
public class MyClass {
[Name("Id")]
public int AwardId { get; set; }
//[Ignore]
public List<string> IgnoreList { get; set; }
[Name("DateField")]
public Tuple<DateTime, DateTime>
我正在尝试下载一个CSV文件并解析它的字段,我正在使用CSVHelper库()。我认为所面临的问题与编码有关,因为当我在代码中读取/打印文件内容时,CsvHelper库无法找到相关的标头/字段。我在word中导入了文件,为了正确显示CSV内容,UTF8似乎是正确的编码。但是,我的代码和excel没有正确显示标题(或任何捷克字符)。下面是我如何获得excel的方法:
var teamResultCsvUrl = new Uri("https://blabla/csv/4072");
这就是我想做的事情:
// total results for teams
我正在与CsvHelper合作,并能够解析csv文件。我的问题是如何将Date解析为DateTime对象
我希望在解析csv时通过CsvHelper转换它,而不是迭代集合。
public static List<StockModel> SplitCsv(string csv)
{
var textReader = new StringReader(csv);
var csvr = new CsvReader(textReader);
csvr.Configuration.RegisterClassMap<ModelMap>();
va
我试图将测试数据从CSV文件加载到可以加载到内存中的EF上下文中的记录中。
我有一个简化的实体,看起来像:
public class Project
{
public int { get; set; }
public Owner? Owner { get; set; } = null;
}
类图:
public class ProjectsClassMap : CsvHelper.Configuration.ClassMap<Projects>
{
public ProjectsClassMap()
{
AutoMap(Culture
我正在使用.NET https://github.com/JoshClose/CsvHelper的CSVHelper库 我有一个如下所示的class-map: public class MyMap : ClassMap<Product>
{
Map(c => c.DateVariable).Name("NonDateColumn");
// Other valid map statements
} 在调用获取记录时,如果只有一条map语句失败或类型不匹配,则行返回为null。 var record = reader.GetRecord<
我使用的是CsvHelper,我希望能够将集合读写为重复列。例如,考虑到:
public class MyCsv
{
public string A { get; set; }
public List<string> Bs { get; set; }
}
var csv = new MyCsv { A = "a", Bs = new List { "b1", "b2" } };
我希望csv被序列化(使用CsvHelper)如下:
A,B,B
a,b1,b2
然后,我需要能够读取序列化的CSV,再次使用CsvHelper
在将空(值为"NULL") Key字段转换为具有CsvHelper的字节数组时,我遇到了一些问题,我一直得到以下异常:
CsvHelper.ReaderException: An unexpected error occurred.
---> System.FormatException: Could not find any recognizable digits.
at System.ParseNumbers.StringToInt(ReadOnlySpan`1 s, Int32 radix, Int32 flags, Int32& currPos)
at S
我们正在将遗留代码移植到dotnet标准,并面临一个我认为CsvHelper 2.5.0 net451中不存在的问题。
问题似乎是CsvReader无法解决映射中底层属性的正确ReturnType,而是试图将它们全部映射到System.Object
我在您的解决方案中通过一个单元测试成功地复制了它:
[TestMethod]
public void CanCreateMapsFromDynamicList()
{
var data = new List<string[]>
{
new[] { "Col1", "Col2"
我使用的是CsvHelper,但是如果文件的第一行类似于sep=,,解析就会崩溃
我就是这样做的
using var reader = new StreamReader(fileStream);
using var csv = new CsvReader(reader, CultureInfo.InvariantCulture);
return csv.GetRecords<ClassToReadInto>()
.Select(t => new ClassToMapTo
{
// map goe
我正在使用CsvHelper (很棒的包,谢谢Josh),在使用CultureInfo时,.Net核心的构造函数有问题。 Josh的例子是这样的……(来自https://joshclose.github.io/CsvHelper/examples/writing/write-class-objects) using (var writer = new StreamWriter("path\\to\\file.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
我试图用以下代码导入CSV文件:
using CsvHelper;
using CsvHelper.Configuration;
\\\ ...
try
{
var csv = new CsvReader(csvReader, new CsvConfiguration {
HasHeaderRecord = false, Delimiter = ";" });
records = csv.GetRecords<FileDataContainerDisplay>().ToList();
}
catch (Exceptio
我使用CsvHelper库将CSV数据解析为C#对象。到目前为止,我可以用这3列解析所有这个类。 public class Foo
{
public string Id { get; set; }
public decimal Amount { get; set; }
public string CurrencyCode { get; set; }
} 但是在我添加了DateTime属性之后,它就失效了。在添加新列之后初始化。 public class Foo
{
public string Id { get; set; }
public decima
我有一个传统的Excel数据文件要导入到我的ASP.NET应用程序中。(我使用EF和Configuration.Seed()方法。)一些日期字段只是..。不是约会。在数百行数据中,每一行都有大约10个日期,所以我不打算手工查看。如何让CsvHelper跳过(并记录)有坏日期的行?
我能找到的最接近的就是这里:
我的代码当前如下所示:
protected override void Seed(pmg2_tracker_net.DAL.Pmg2TrackerContext context)
{
// This method will be called after migrating t
我有一个与CsvHelper库相关的问题,我不知道如何将csv文件映射到下面的Mycalss对象。csv文件如下所示: id, Property1, property2....
1, x, a,b,c
2,x, d,f
3, y, g,h,i,j,k
... 我想把它解析成下面的类 public class MyClass
{
public string Id { get; set; }
public List<Custom> MyCustoms { get; set; }
}
public class Custom
{
public string Property1 {