diff --git a/src/Luban.Job.Cfg/Source/DataCreators/ExcelStreamDataCreator.cs b/src/Luban.Job.Cfg/Source/DataCreators/ExcelStreamDataCreator.cs index 8adaa78..3801ae9 100644 --- a/src/Luban.Job.Cfg/Source/DataCreators/ExcelStreamDataCreator.cs +++ b/src/Luban.Job.Cfg/Source/DataCreators/ExcelStreamDataCreator.cs @@ -29,14 +29,7 @@ namespace Luban.Job.Cfg.DataCreators return b; } var s = x.ToString().ToLower().Trim(); - switch (s) - { - case "true": - case "是": return true; - case "false": - case "否": return false; - default: throw new InvalidExcelDataException($"{s} 不是 bool 类型的值 (true 或 false)"); - } + return DataUtil.ParseExcelBool(s); } public DType Accept(TBool type, ExcelStream x) diff --git a/src/Luban.Job.Cfg/Source/DataCreators/SheetDataCreator.cs b/src/Luban.Job.Cfg/Source/DataCreators/SheetDataCreator.cs index 91e7473..e64fb96 100644 --- a/src/Luban.Job.Cfg/Source/DataCreators/SheetDataCreator.cs +++ b/src/Luban.Job.Cfg/Source/DataCreators/SheetDataCreator.cs @@ -53,7 +53,7 @@ namespace Luban.Job.Cfg.DataCreators { return DBool.ValueOf(v); } - return DBool.ValueOf(bool.Parse(x.ToString())); + return DBool.ValueOf(DataUtil.ParseExcelBool(x.ToString())); } public DType Accept(TByte type, RowColumnSheet sheet, TitleRow row) diff --git a/src/Luban.Job.Cfg/Source/Utils/DataUtil.cs b/src/Luban.Job.Cfg/Source/Utils/DataUtil.cs index 8661e60..8d40c82 100644 --- a/src/Luban.Job.Cfg/Source/Utils/DataUtil.cs +++ b/src/Luban.Job.Cfg/Source/Utils/DataUtil.cs @@ -1,4 +1,5 @@ using Luban.Common.Utils; +using Luban.Job.Cfg.DataCreators; using Luban.Job.Cfg.Datas; using Luban.Job.Cfg.DataSources; using Luban.Job.Cfg.Defs; @@ -257,6 +258,25 @@ namespace Luban.Job.Cfg.Utils return defType; } + public static bool ParseExcelBool(string s) + { + s = s.ToLower().Trim(); + switch (s) + { + case "true": + case "": + case "1": + case "y": + case "yes": return true; + case "false": + case "": + case "0": + case "n": + case "no": return false; + default: throw new InvalidExcelDataException($"{s} bool ͵ֵ (true||1|y|yes false||0|n|no)"); + } + } + //public static string Data2String(DType data) //{ // var s = new StringBuilder();