From dadd421d586f515c4a0cec0a03c38c148043d22e Mon Sep 17 00:00:00 2001 From: wp_xxyyzz Date: Sat, 24 May 2025 18:01:39 +0000 Subject: [PATCH] fpspreadsheet: Write image rotation angle to xlsx. git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@9760 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/fpspreadsheet/laz_fpspreadsheet.lpk | 8 ++------ components/fpspreadsheet/source/common/xlsxooxml.pas | 6 +++++- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/components/fpspreadsheet/laz_fpspreadsheet.lpk b/components/fpspreadsheet/laz_fpspreadsheet.lpk index 2a511e613..f0a4bc49a 100644 --- a/components/fpspreadsheet/laz_fpspreadsheet.lpk +++ b/components/fpspreadsheet/laz_fpspreadsheet.lpk @@ -33,7 +33,7 @@ This package is all you need if you don't want graphical components (such as grids and charts)."/> - + @@ -314,13 +314,9 @@ This package is all you need if you don't want graphical components (such a - - - - - + diff --git a/components/fpspreadsheet/source/common/xlsxooxml.pas b/components/fpspreadsheet/source/common/xlsxooxml.pas index 8f7e87ac6..c41272aac 100644 --- a/components/fpspreadsheet/source/common/xlsxooxml.pas +++ b/components/fpspreadsheet/source/common/xlsxooxml.pas @@ -6672,6 +6672,7 @@ procedure TsSpreadOOXMLWriter.WriteDrawings(AWorksheet: TsBasicWorksheet); descr: String; hlink: String; xdr_cNvPr: String; + rotStr: String = ''; begin book := FWorkbook as TsWorkbook; sheet := TsWorksheet(AWorksheet); @@ -6688,6 +6689,8 @@ procedure TsSpreadOOXMLWriter.WriteDrawings(AWorksheet: TsBasicWorksheet); descr := ExtractFileName(book.GetEmbeddedObj(img.index).Filename); if descr = '' then descr := 'image'; + if img.RotationAngle <> 0.0 then rotStr := Format(' rot="%.0f"', [img.RotationAngle * 60000]); + // This part defines the relationship to the graphic and, if available, to // a hyperlink. xdr_cNvPr := Format('id="%d" name="Graphic %d" descr="%s"', [AIndex+3, AIndex+2, descr]); @@ -6730,7 +6733,7 @@ procedure TsSpreadOOXMLWriter.WriteDrawings(AWorksheet: TsBasicWorksheet); ' ' + LE + ' ' + LE + ' ' + LE + - ' ' + LE + + ' ' + LE + ' ' + LE + ' ' + LE + // size in EMU ' ' + LE + @@ -6742,6 +6745,7 @@ procedure TsSpreadOOXMLWriter.WriteDrawings(AWorksheet: TsBasicWorksheet); ' ' + LE, [ // i + 3, i+2, descr, SCHEMAS_DOC_RELS, RelID, + rotStr, // img.RotationAngle mmToEMU(x), mmToEMU(y), mmToEMU(w), mmToEMU(h) ]));