From 9886bd122215ff773ca0ca7f48ca05f2682241a6 Mon Sep 17 00:00:00 2001 From: Carson <396098651@qq.com> Date: Sat, 26 Mar 2022 03:37:48 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91?= =?UTF-8?q?=E8=AE=A9Map=E7=B1=BB=E5=9E=8B=E6=94=AF=E6=8C=81=E7=BA=B5?= =?UTF-8?q?=E5=90=91=E5=A1=AB=E5=85=85=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Source/DataConverts/FillSheetVisitor.cs | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/Luban.Job.Cfg/Source/DataConverts/FillSheetVisitor.cs b/src/Luban.Job.Cfg/Source/DataConverts/FillSheetVisitor.cs index 007405c..6de7675 100644 --- a/src/Luban.Job.Cfg/Source/DataConverts/FillSheetVisitor.cs +++ b/src/Luban.Job.Cfg/Source/DataConverts/FillSheetVisitor.cs @@ -258,8 +258,31 @@ namespace Luban.Job.Cfg.DataConverts public int Accept(DMap data, TType type, Title x) { - SetTitleValue(x, data.Apply(ToExcelStringVisitor.Ins, type.GetTag("sep"))); - return 1; + if (x.SelfMultiRows) + { + int oldStartRow = _startRowIndex; + int totalRow = 0; + try + { + var elementType = data.Type.ElementType; + foreach (var ele in data.Datas) + { + int row = Math.Max(ele.Key.Apply(this, elementType, x), ele.Value.Apply(this, elementType, x)); + totalRow += row; + _startRowIndex = oldStartRow + totalRow; + } + return totalRow; + } + finally + { + _startRowIndex = oldStartRow; + } + } + else + { + SetTitleValue(x, data.Apply(ToExcelStringVisitor.Ins, type.GetTag("sep"))); + return 1; + } } public int Accept(DVector2 data, TType type, Title x) From ee6bba34148c49c497584ba6cdb33f65861ca718 Mon Sep 17 00:00:00 2001 From: Carson <396098651@qq.com> Date: Sat, 26 Mar 2022 15:36:37 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E3=80=90=E4=BF=AE=E5=A4=8D=E3=80=91?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86table=E5=92=8Cenum=E7=9A=84excel?= =?UTF-8?q?=E8=A1=A8=E5=9C=A8=E5=AD=90sheet=E7=9A=84=E6=97=B6=E5=80=99?= =?UTF-8?q?=E9=80=9A=E8=BF=87@=E5=AE=9A=E4=BD=8D=E4=BC=9A=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E7=9A=84=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Luban.Job.Cfg/Source/Defs/CfgDefLoader.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Luban.Job.Cfg/Source/Defs/CfgDefLoader.cs b/src/Luban.Job.Cfg/Source/Defs/CfgDefLoader.cs index 03b3907..fd50996 100644 --- a/src/Luban.Job.Cfg/Source/Defs/CfgDefLoader.cs +++ b/src/Luban.Job.Cfg/Source/Defs/CfgDefLoader.cs @@ -443,7 +443,8 @@ namespace Luban.Job.Cfg.Defs { var source = new ExcelDataSource(); var bytes = await this.Agent.GetFromCacheOrReadAllBytesAsync(file.ActualFile, file.MD5); - var records = DataLoaderUtil.LoadCfgRecords(tableRecordType, file.OriginFile, null, bytes, true); + (var actualFile, var sheetName) = FileUtil.SplitFileAndSheetName(FileUtil.Standardize(file.OriginFile)); + var records = DataLoaderUtil.LoadCfgRecords(tableRecordType, actualFile, sheetName, bytes, true); foreach (var r in records) { DBean data = r.Data; @@ -541,7 +542,8 @@ namespace Luban.Job.Cfg.Defs { var source = new ExcelDataSource(); var bytes = await this.Agent.GetFromCacheOrReadAllBytesAsync(file.ActualFile, file.MD5); - var records = DataLoaderUtil.LoadCfgRecords(tableRecordType, file.OriginFile, null, bytes, true); + (var actualFile, var sheetName) = FileUtil.SplitFileAndSheetName(FileUtil.Standardize(file.OriginFile)); + var records = DataLoaderUtil.LoadCfgRecords(tableRecordType, actualFile, sheetName, bytes, true); foreach (var r in records) {