From 94a1b7adaf207f9691afc5a9409004d23eca89fe Mon Sep 17 00:00:00 2001 From: wp_xxyyzz Date: Fri, 14 Oct 2016 10:21:25 +0000 Subject: [PATCH] fpspreadsheet: Fix reading of row and column formats from ods files. git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5261 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/fpspreadsheet/fpsopendocument.pas | 7 +++++-- components/fpspreadsheet/fpspreadsheet.pas | 12 ++++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/components/fpspreadsheet/fpsopendocument.pas b/components/fpspreadsheet/fpsopendocument.pas index 1fd83c229..2a8d066e4 100755 --- a/components/fpspreadsheet/fpsopendocument.pas +++ b/components/fpspreadsheet/fpsopendocument.pas @@ -3503,8 +3503,11 @@ var // sometimes split into two parts. cell := FWorksheet.FindCell(row, col); if cell <> nil then - for i:=1 to colsRepeated-1 do - FWorksheet.CopyCell(row, col, row, col+i); + for i:=1 to colsRepeated-1 do begin + cell := FWorksheet.CopyCell(row, col, row, col+i); + styleIndex := ExtractFormatIndexFromStyle(cellStyleName, col+i); + ApplyStyleToCell(cell, styleIndex); + end; end; end else diff --git a/components/fpspreadsheet/fpspreadsheet.pas b/components/fpspreadsheet/fpspreadsheet.pas index d54e8e34b..11219ba0d 100755 --- a/components/fpspreadsheet/fpspreadsheet.pas +++ b/components/fpspreadsheet/fpspreadsheet.pas @@ -374,8 +374,8 @@ type { Data manipulation methods - For Cells } procedure CopyCell(AFromCell, AToCell: PCell); overload; - procedure CopyCell(AFromRow, AFromCol, AToRow, AToCol: Cardinal; - AFromWorksheet: TsWorksheet = nil); overload; + function CopyCell(AFromRow, AFromCol, AToRow, AToCol: Cardinal; + AFromWorksheet: TsWorksheet = nil): PCell; overload; procedure CopyFormat(AFromCell, AToCell: PCell); overload; procedure CopyFormat(AFormatCell: PCell; AToRow, AToCol: Cardinal); overload; procedure CopyFormula(AFromCell, AToCell: PCell); overload; @@ -1723,9 +1723,11 @@ end; @param AToRow Row index of the destination cell @param AToCol Column index of the destination cell @param AFromWorksheet Worksheet containing the source cell. Self, if omitted. + + @return Created new destination cell -------------------------------------------------------------------------------} -procedure TsWorksheet.CopyCell(AFromRow, AFromCol, AToRow, AToCol: Cardinal; - AFromWorksheet: TsWorksheet = nil); +function TsWorksheet.CopyCell(AFromRow, AFromCol, AToRow, AToCol: Cardinal; + AFromWorksheet: TsWorksheet = nil): PCell; var srcCell, destCell: PCell; begin @@ -1739,6 +1741,8 @@ begin ChangedCell(AToRow, AToCol); ChangedFont(AToRow, AToCol); + + Result := destCell; end; {@@ ----------------------------------------------------------------------------