From 30a4ce12db876ad86d8b0f96bc59028a84602dcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carson=20-=20=E5=AE=9D=E9=B1=BC?= <44496710+kteong1012@users.noreply.github.com> Date: Thu, 13 Oct 2022 17:48:42 +0800 Subject: [PATCH] =?UTF-8?q?[new]=20=E6=96=B0=E5=A2=9E=E8=A1=A8=E6=A0=BC?= =?UTF-8?q?=E5=AF=B9##group=E7=9A=84=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [new] 新增表格对##group的支持 Co-authored-by: Tianbao Lin --- .../Source/DataSources/Excel/RawSheetTableDefInfo.cs | 4 +++- .../Source/DataSources/Excel/SheetLoadUtil.cs | 8 +++++++- src/Luban.Job.Cfg/Source/Defs/CfgDefLoader.cs | 7 +++++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/Luban.Job.Cfg/Source/DataSources/Excel/RawSheetTableDefInfo.cs b/src/Luban.Job.Cfg/Source/DataSources/Excel/RawSheetTableDefInfo.cs index 55e0b63..05bd742 100644 --- a/src/Luban.Job.Cfg/Source/DataSources/Excel/RawSheetTableDefInfo.cs +++ b/src/Luban.Job.Cfg/Source/DataSources/Excel/RawSheetTableDefInfo.cs @@ -1,4 +1,5 @@ -using System; +using DocumentFormat.OpenXml.EMMA; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -15,6 +16,7 @@ namespace Luban.Job.Cfg.DataSources.Excel public string Type { get; set; } public string Desc { get; set; } + public string Groups { get; set; } } class RawSheetTableDefInfo diff --git a/src/Luban.Job.Cfg/Source/DataSources/Excel/SheetLoadUtil.cs b/src/Luban.Job.Cfg/Source/DataSources/Excel/SheetLoadUtil.cs index 3cafa40..8e3df37 100644 --- a/src/Luban.Job.Cfg/Source/DataSources/Excel/SheetLoadUtil.cs +++ b/src/Luban.Job.Cfg/Source/DataSources/Excel/SheetLoadUtil.cs @@ -87,6 +87,7 @@ namespace Luban.Job.Cfg.DataSources.Excel "desc", "comment", "column", + "group", }; private const char s_sep = '#'; @@ -450,6 +451,10 @@ namespace Luban.Job.Cfg.DataSources.Excel { return IsRowTagEqual(row, "##type"); } + private static bool IsGroupRow(List row) + { + return IsRowTagEqual(row, "##group"); + } private static bool IsHeaderRow(List row) { @@ -577,7 +582,7 @@ namespace Luban.Job.Cfg.DataSources.Excel { descRow = cells.Count > 1 ? cells.Skip(1).FirstOrDefault(row => IsRowTagEqual(row, "##")) : null; } - + List groupRow = cells.Find(row => IsGroupRow(row)); var fields = new Dictionary(); foreach (var subTitle in title.SubTitleList) { @@ -617,6 +622,7 @@ namespace Luban.Job.Cfg.DataSources.Excel Name = subTitle.Name, Tags = subTitle.Tags, Type = typeRow[subTitle.FromIndex].Value?.ToString() ?? "", + Groups = groupRow?[subTitle.FromIndex].Value?.ToString() ?? "", Desc = desc, }); } diff --git a/src/Luban.Job.Cfg/Source/Defs/CfgDefLoader.cs b/src/Luban.Job.Cfg/Source/Defs/CfgDefLoader.cs index d36b70f..3ee0e6b 100644 --- a/src/Luban.Job.Cfg/Source/Defs/CfgDefLoader.cs +++ b/src/Luban.Job.Cfg/Source/Defs/CfgDefLoader.cs @@ -367,9 +367,7 @@ namespace Luban.Job.Cfg.Defs } cf.Comment = f.Desc; - cf.Type = attrs[0]; - for (int i = 1; i < attrs.Length; i++) { var pair = attrs[i].Split('=', 2); @@ -411,6 +409,11 @@ namespace Luban.Job.Cfg.Defs } } + if (!string.IsNullOrEmpty(f.Groups)) + { + cf.Groups = f.Groups.Split(',').Select(s => s.Trim()).Where(s => !string.IsNullOrWhiteSpace(s)).ToList(); + } + cb.Fields.Add(cf); } return cb;