From 280dc39ddc75accc986f6efc333308d69b73207f Mon Sep 17 00:00:00 2001 From: wp_xxyyzz Date: Sat, 18 Feb 2017 17:31:05 +0000 Subject: [PATCH] fpspreadsheet: Fix formulas from prev sheet overrunning other formulas in sheet, xlsx issue (SharedFormulaBase list must be reset for each sheet) - see http://forum.lazarus.freepascal.org/index.php/topic,35903.0.html) git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5753 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/fpspreadsheet/source/common/xlsxooxml.pas | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/components/fpspreadsheet/source/common/xlsxooxml.pas b/components/fpspreadsheet/source/common/xlsxooxml.pas index 465bfdb97..13e05e722 100644 --- a/components/fpspreadsheet/source/common/xlsxooxml.pas +++ b/components/fpspreadsheet/source/common/xlsxooxml.pas @@ -2104,7 +2104,7 @@ var Doc : TXMLDocument; RelsNode: TDOMNode; SheetList: TStringList; - i: Integer; + i, j: Integer; fn: String; fn_comments: String; XMLStream: TStream; @@ -2204,6 +2204,11 @@ begin XMLStream.Free; end; + // clear sharedformulabase list + for j:=FSharedFormulaBaseList.Count-1 downto 0 do + TObject(FSharedFormulaBaseList[j]).Free; + FSharedFormulaBaseList.Clear; + // Sheet data, formats, etc. ReadSheetViews(Doc.DocumentElement.FindNode('sheetViews'), FWorksheet); ReadSheetFormatPr(Doc.DocumentElement.FindNode('sheetFormatPr'), FWorksheet);