diff --git a/src/Luban.Job.Cfg/Source/DataSources/Excel/SheetLoadUtil.cs b/src/Luban.Job.Cfg/Source/DataSources/Excel/SheetLoadUtil.cs index 695a066..ab115fa 100644 --- a/src/Luban.Job.Cfg/Source/DataSources/Excel/SheetLoadUtil.cs +++ b/src/Luban.Job.Cfg/Source/DataSources/Excel/SheetLoadUtil.cs @@ -298,16 +298,6 @@ namespace Luban.Job.Cfg.DataSources.Excel return TryParseMeta(metaStr, out orientRow, out tableName); } - private static bool IsSubFieldRow(List row) - { - if (row.Count == 0) - { - return false; - } - var s = row[0].Value?.ToString()?.Trim(); - return s == "##field"; - } - private static bool IsTypeRow(List row) { if (row.Count == 0) diff --git a/src/LubanAssistant/ExcelUtil.cs b/src/LubanAssistant/ExcelUtil.cs index 5261441..10d8f57 100644 --- a/src/LubanAssistant/ExcelUtil.cs +++ b/src/LubanAssistant/ExcelUtil.cs @@ -90,12 +90,31 @@ namespace LubanAssistant return rootTile; } - private static bool IsSubFieldRow(Range cell) + private static bool TryParseNextSubFieldRowIndex(Range sheetCells, int startRowIndex, out int rowIndex) { - var s = cell.Value?.ToString()?.Trim(); - return s == "##field"; + for (int i = startRowIndex; ; i++) + { + string rowTag = sheetCells[i, 1].Value?.ToString() ?? ""; + if (rowTag.StartsWith("##field")) + { + rowIndex = i; + return true; + } + else if (!rowTag.StartsWith("##")) + { + break; + } + } + rowIndex = 0; + return false; } + //private static bool IsSubFieldRow(Range cell) + //{ + // var s = cell.Value?.ToString()?.Trim(); + // return s == "##field"; + //} + private static bool IsTypeRow(Range cell) { var s = cell.Value?.ToString()?.Trim(); @@ -140,11 +159,11 @@ namespace LubanAssistant } title.AddSubTitle(newSubTitle); } - if (rowIndex < sheet.UsedRange.Rows.Count && IsSubFieldRow(sheet.Cells[rowIndex + 1, 1])) + if (rowIndex < sheet.UsedRange.Rows.Count && TryParseNextSubFieldRowIndex(sheet.Cells, rowIndex + 1, out int nextRowIndex)) { foreach (var subTitle in title.SubTitleList) { - ParseSubTitle(sheet, rowIndex + 1, subTitle); + ParseSubTitle(sheet, nextRowIndex, subTitle); } } }