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;