From fd00b323b46ed14bf40bc1de57ec5271d2dfa2af Mon Sep 17 00:00:00 2001 From: WX Date: Fri, 27 Sep 2024 21:23:42 +0800 Subject: [PATCH] =?UTF-8?q?FIX=EF=BC=9A=E6=B2=A1=E6=9C=89=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF=E6=95=B0=E6=8D=AE=E6=97=B6=EF=BC=8C=E5=88=A0=E9=99=A4?= =?UTF-8?q?@foreach-@endforeach=E4=B9=8B=E9=97=B4=E7=9A=84=E5=85=83?= =?UTF-8?q?=E7=B4=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MiniWord/MiniWord.Implment.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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); }