From d0587324f567e3029569776c311aab338647013e Mon Sep 17 00:00:00 2001 From: walon Date: Wed, 7 Dec 2022 19:28:46 +0800 Subject: [PATCH] =?UTF-8?q?[opt]=20=E4=BC=98=E5=8C=96excel=E4=B8=AD?= =?UTF-8?q?=E5=A1=AB=E5=86=99bool=E7=B1=BB=E5=9E=8B=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=EF=BC=8C=E5=8F=AF=E4=BB=A5=E7=94=A8=20true|yes|y|1=E8=A1=A8?= =?UTF-8?q?=E7=A4=BAtrue,=E7=94=A8=20false|no|n|0=E8=A1=A8=E7=A4=BAfalse?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DataCreators/ExcelStreamDataCreator.cs | 9 +-------- .../Source/DataCreators/SheetDataCreator.cs | 2 +- src/Luban.Job.Cfg/Source/Utils/DataUtil.cs | 20 +++++++++++++++++++ 3 files changed, 22 insertions(+), 9 deletions(-) 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();