From 746bc7d78b9029a84598c7b95c13fbc595d0a8ed Mon Sep 17 00:00:00 2001 From: Ethan <31498924+ethanlin6@users.noreply.github.com> Date: Tue, 5 Aug 2025 15:54:26 +0800 Subject: [PATCH] fix: formula not replace --- src/MiniExcel/SaveByTemplate/ExcelOpenXmlTemplate.Impl.cs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/MiniExcel/SaveByTemplate/ExcelOpenXmlTemplate.Impl.cs b/src/MiniExcel/SaveByTemplate/ExcelOpenXmlTemplate.Impl.cs index 68b1a094..7e87a156 100644 --- a/src/MiniExcel/SaveByTemplate/ExcelOpenXmlTemplate.Impl.cs +++ b/src/MiniExcel/SaveByTemplate/ExcelOpenXmlTemplate.Impl.cs @@ -546,7 +546,6 @@ private void GenerateCellValues(string endPrefix, StreamWriter writer, ref int r { // Just need to remove space string one time https://github.com/mini-software/MiniExcel/issues/751 var cleanOuterXmlOpen = CleanXml(outerXmlOpen, endPrefix); - var cleanInnerXml = CleanXml(innerXml, endPrefix); // https://github.com/mini-software/MiniExcel/issues/771 Saving by template introduces unintended value replication in each row #771 var notFirstRowElement = rowElement.Clone(); @@ -556,7 +555,6 @@ private void GenerateCellValues(string endPrefix, StreamWriter writer, ref int r if (v != null && !_nonTemplateRegex.IsMatch(v.InnerText)) v.InnerText = string.Empty; } - var cleanNotFirstRowInnerXml = CleanXml(notFirstRowElement.InnerXml, endPrefix); foreach (var item in rowInfo.CellIEnumerableValues) { @@ -564,7 +562,7 @@ private void GenerateCellValues(string endPrefix, StreamWriter writer, ref int r rowXml.Clear() .Append(cleanOuterXmlOpen) .AppendFormat(@" r=""{0}"">", newRowIndex) - .Append(cleanInnerXml) + .Append(innerXml) .Replace("{{$rowindex}}", newRowIndex.ToString()) .AppendFormat("", row.Name); @@ -739,7 +737,7 @@ private void GenerateCellValues(string endPrefix, StreamWriter writer, ref int r if (isFirst) { // https://github.com/mini-software/MiniExcel/issues/771 Saving by template introduces unintended value replication in each row #771 - cleanInnerXml = cleanNotFirstRowInnerXml; + innerXml = notFirstRowElement.InnerXml; isFirst = false; } @@ -748,7 +746,7 @@ private void GenerateCellValues(string endPrefix, StreamWriter writer, ref int r // replace formulas ProcessFormulas(rowXml, newRowIndex); - writer.Write(rowXml); + writer.Write(CleanXml(rowXml, endPrefix)); //mergecells if (rowInfo.RowMercells == null)