我们如何使用 CsvHelper 库编写像 sep= 这样的分隔符?
How we can write delimiter like sep=, using CsvHelper library?
我们正在使用 CsvHelper 库从我们的应用程序中导出一些信息,我们的客户通常使用 Excel 来查看结果
(正确打开的数据样本)
一切正常,直到我在另一台机器上测试了我生成的文件,格式设置为 German(Austria),我发现 excel 不会解析它不再正确,这是可以理解的,因为 、 在此格式中具有不同的含义。
在第一行添加 sep=, 似乎可以解决问题,但我在 CsvHelper 文档中找不到我们如何实现这一点。所以问题是
我们如何使用 CsvHelper 库编写像 sep= 或具有类似效果的任何分隔符?
在 CsvWriter
class 中有一个恰当命名的 WriteExcelSeparator()
应该可以做到这一点。
根据您使用库的方式,您甚至可以:
csv.Configuration.Delimiter = ",";
csv.Configuration.HasExcelSeparator = true;
如果使用WriteRecords
,则使用第二种方式,如果使用WriteHeader
/WriteRecord
,则使用第一种方式。
csv.WriteExcelSeparator();
csv.WriteHeader<Simple>();
csv.WriteRecord( record );
由于 csvHelper 确实支持 excel 特定方法,您现在可以执行此操作..
csvWriter.WriteField("sep=,", false);
csvWriter.NextRecord();
csvWriter.WriteRecords(dataToExport);
他们首先将其更改为 CsvConfiguration 的参数,截至 2021 年 3 月 8 日,它是
var config = new CsvConfiguration(CultureInfo.CurrentCulture) { Delimiter = ";", Encoding = Encoding.UTF8 };
using var csv = new CsvReader(reader, config);
他们以后可能会再次更改 ;)
我们正在使用 CsvHelper 库从我们的应用程序中导出一些信息,我们的客户通常使用 Excel 来查看结果
一切正常,直到我在另一台机器上测试了我生成的文件,格式设置为 German(Austria),我发现 excel 不会解析它不再正确,这是可以理解的,因为 、 在此格式中具有不同的含义。
在第一行添加 sep=, 似乎可以解决问题,但我在 CsvHelper 文档中找不到我们如何实现这一点。所以问题是
我们如何使用 CsvHelper 库编写像 sep= 或具有类似效果的任何分隔符?
在 CsvWriter
class 中有一个恰当命名的 WriteExcelSeparator()
应该可以做到这一点。
根据您使用库的方式,您甚至可以:
csv.Configuration.Delimiter = ",";
csv.Configuration.HasExcelSeparator = true;
如果使用WriteRecords
,则使用第二种方式,如果使用WriteHeader
/WriteRecord
,则使用第一种方式。
csv.WriteExcelSeparator();
csv.WriteHeader<Simple>();
csv.WriteRecord( record );
由于 csvHelper 确实支持 excel 特定方法,您现在可以执行此操作..
csvWriter.WriteField("sep=,", false);
csvWriter.NextRecord();
csvWriter.WriteRecords(dataToExport);
他们首先将其更改为 CsvConfiguration 的参数,截至 2021 年 3 月 8 日,它是
var config = new CsvConfiguration(CultureInfo.CurrentCulture) { Delimiter = ";", Encoding = Encoding.UTF8 };
using var csv = new CsvReader(reader, config);
他们以后可能会再次更改 ;)