From 9ca8cd943d9863907d82878d98f4e222cdd6f550 Mon Sep 17 00:00:00 2001 From: wp_xxyyzz Date: Mon, 2 Oct 2023 21:53:23 +0000 Subject: [PATCH] fpspreadsheet: Fix evaluation of worksheet rels. Fix copying comments (sourceforge issue #61) git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8928 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/fpspreadsheet/source/common/fpspreadsheet.pas | 2 +- components/fpspreadsheet/source/common/xlsxooxml.pas | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/components/fpspreadsheet/source/common/fpspreadsheet.pas b/components/fpspreadsheet/source/common/fpspreadsheet.pas index 26b4b1bb3..1024a8df8 100644 --- a/components/fpspreadsheet/source/common/fpspreadsheet.pas +++ b/components/fpspreadsheet/source/common/fpspreadsheet.pas @@ -1653,7 +1653,7 @@ begin // Copy comment if srcSheet.HasComment(AFromCell) then - WriteComment(AToCell, ReadComment(AFromCell)); + WriteComment(AToCell, srcSheet.ReadComment(AFromCell)); // Copy hyperlink hyperlink := srcSheet.FindHyperlink(AFromCell); diff --git a/components/fpspreadsheet/source/common/xlsxooxml.pas b/components/fpspreadsheet/source/common/xlsxooxml.pas index 03a7e5f2f..46b07054b 100644 --- a/components/fpspreadsheet/source/common/xlsxooxml.pas +++ b/components/fpspreadsheet/source/common/xlsxooxml.pas @@ -452,6 +452,7 @@ type Target : String; Hidden: Boolean; SheetRels: TFPList; + SheetRelsFile: String; Drawing_File: String; DrawingRels: TRelationshipList; VmlDrawing_File: String; @@ -3966,13 +3967,13 @@ procedure TsSpreadOOXMLReader.ReadSheetRels(AStream: TStream); var i: Integer; sheetData: TSheetData; - relsFile: String; begin for i := 0 to FSheetList.Count-1 do begin sheetData := TSheetData(FSheetList[i]); - relsFile := OOXML_PATH_XL_WORKSHEETS + '_rels/sheet' + sheetData.ID + '.xml.rels'; - ReadRels(AStream, relsfile, sheetData.SheetRels); + sheetData.Target := TRelationshipList(FWorkbookRels).FindTarget(sheetData.RelID); + sheetData.SheetRelsFile := OOXML_PATH_XL_WORKSHEETS + '_rels/' + ExtractFileName(sheetData.Target) + '.rels'; + ReadRels(AStream, sheetData.SheetRelsFile, sheetData.SheetRels); end; end; @@ -3991,7 +3992,7 @@ var begin sheetIndex := TsWorksheet(AWorksheet).Index; sheetData := TSheetData(FSheetList[sheetIndex]); - sheetRelsFile := OOXML_PATH_XL_WORKSHEETS_RELS + 'sheet' + sheetData.ID + '.xml.rels'; + sheetRelsFile := sheetData.SheetRelsFile; ANode := ANode.FirstChild; while Assigned(ANode) do