我为用户构建了一个工具来导入 CSV 并为导入创建自定义列映射。它使用 ChoETL csv 工具来解析 CSV。我添加了一些布尔列,但不确定如何验证数据以确保提供的值符合 ChoETL 默认设置
ChoBooleanFormatSpec.ZeroOrOne
。
理想情况下,如果类型不正确,我只想抛出一个异常(作为一条好消息返回)。但是当我尝试输入“True”而不是 1 时,ChoETL 将其解析为 false。我该怎么做?
根据文档,您只能选择一种支持的格式。
Cinchoo ETL 隐式处理 CSV 文件中布尔 CSV 列值的解析/写入。如果您想精细控制这些值的解析,可以通过 ChoTypeConverterFormatSpec.BooleanFormat 全局指定它们。默认值为 ChoBooleanFormatSpec.ZeroOrOne。
https://www.codeproject.com/Articles/1155891/Cinchoo-ETL-CSV-Writer#20.4%C2%A0BooleanSupport41
这是布尔转换器的问题,默认为
false
表示不正确的值。应用修复。发布 nuget 包 v1.2.1.67
string csv = @"Id, Name, IsActive
1, Tom, 0
2, Mark, 1
3, Shelly, true";
using (var r = ChoCSVReader<EmployeeC>.LoadText(csv)
.WithFirstLineHeader()
.TypeConverterFormatSpec(ts => ts.BooleanFormat = ChoBooleanFormatSpec.ZeroOrOne)
)
{
r.Print();
}