diff --git a/src/MiniWord/MiniWord.Implment.cs b/src/MiniWord/MiniWord.Implment.cs index 75e540d..a1085ab 100644 --- a/src/MiniWord/MiniWord.Implment.cs +++ b/src/MiniWord/MiniWord.Implment.cs @@ -666,7 +666,8 @@ private static void ReplaceForeachStatements(OpenXmlElement xmlElement,Wordproce var copyLoopEles = betweenEles.Select(e => e.CloneNode(true)).ToList(); // 需要循环的数据 var foreachList = GetObjVal(data, foreachDataKey); - if (foreachList is IList list) + + if (foreachList is IList list && list.Count > 0) { var loopEles = new List(); for (var i = 0; i < list.Count; i++) @@ -703,6 +704,14 @@ private static void ReplaceForeachStatements(OpenXmlElement xmlElement,Wordproce } } } + else + { + // 如果没有数据,删除循环元素 + foreach (var ele in betweenEles) + { + ele.Remove(); + } + } betweenEles = GetBetweenElements(xmlElement, beginKey, endKey, false); }