Tag: csvhelper

CsvHelper没有写任何内存流

我有以下方法: public byte[] WriteCsvWithHeaderToMemory(IEnumerable records) where T : class { using (var memoryStream = new MemoryStream()) using (var streamWriter = new StreamWriter(memoryStream)) using (var csvWriter = new CsvWriter(streamWriter)) { csvWriter.WriteRecords(records); return memoryStream.ToArray(); } } 使用对象列表调用哪个 – 最终来自数据库,但由于某些东西不起作用,我只是填充静态集合。 传递的对象如下: using CsvHelper.Configuration; namespace Application.Models.ViewModels { public class Model { [CsvField(Name = “Field 1”, Ignore = false)] public […]

使用CsvHelper将CSV中的所有值读入List

所以我一直在读我不应该编写自己的CSV读写器,所以我一直在尝试使用通过nuget安装的CsvHelper库。 CSV文件是灰度图像,行数是图像高度,数字列是宽度。 我想将行逐行读入单个List或List 。 我到目前为止的代码是: using CsvHelper; public static List ReadInCSV(string absolutePath) { IEnumerable allValues; using (TextReader fileReader = File.OpenText(absolutePath)) { var csv = new CsvReader(fileReader); csv.Configuration.HasHeaderRecord = false; allValues = csv.GetRecords } return allValues.ToList(); } 但allValues.ToList()抛出一个: 用户代码未处理CsvConfigurationException CsvHelper.dll中出现“CsvHelper.Configuration.CsvConfigurationException”类型的exception,但未在用户代码中处理 附加信息:inheritanceIEnumerable的类型无法自动映射。 您是否不小心调用了对单个记录执行操作的GetRecord或WriteRecord,而不是调用作为记录列表的GetRecords或WriteRecords? GetRecords可能期望我自己的自定义类,但我只是想将值作为一些原始类型或字符串。 此外,我怀疑整行正在转换为单个字符串,而不是每个值都是一个单独的字符串。

cSON中的JSON字符串到CSV和CSV到JSON的转换

我正在使用我的asp.net web API项目中的JSON / CSV文件,并尝试使用CSVHelper和ServiceStack.Text库但无法使其工作。 包含数组的JSON文件是动态的,可能包含任意数量的字段 我使用streamreader读取文件,然后需要将其转换为CSV文件,以便最终用户下载。 示例文件文本 [{“COLUMN1″:”a”,”COLUMN2″:”b”,”COLUMN3″:”c”,”COLUMN4″:”d”,”COLUMN5″:”e”}, {“COLUMN1″:”a”,”COLUMN2″:”b”,”COLUMN3″:”c”,”COLUMN4″:”d”,”COLUMN5″:”e”}] JSON到CSV public static string jsonStringToCSV(string content) { var jsonContent = (JArray)JsonConvert.DeserializeObject(content); var csv = ServiceStack.Text.CsvSerializer.SerializeToCsv(jsonContent); return csv; } 这不会导致我的CSV数据 然后一些文件是带有逗号或制表符的分隔符类型,我想利用CSVHelper将CSV字符串动态转换为IEnumerable public static IEnumerable StringToList(string data, string delimiter, bool HasHeader) { using (var csv = new CsvReader(new StringReader(data))) { csv.Configuration.SkipEmptyRecords = true; csv.Configuration.HasHeaderRecord = HasHeader; csv.Configuration.Delimiter […]