diff --git a/components/fpspreadsheet/fpsopendocument.pas b/components/fpspreadsheet/fpsopendocument.pas index 7883f2c59..179e38242 100755 --- a/components/fpspreadsheet/fpsopendocument.pas +++ b/components/fpspreadsheet/fpsopendocument.pas @@ -4603,7 +4603,7 @@ begin inc(k); end else - while (k <= lastCol) do + while (k <= lastCol) and (k < firstRepeatedPrintCol) do begin if ASheet.GetColWidth(k) = w then inc(colsRepeated) @@ -4617,7 +4617,7 @@ begin '', [styleName, colsRepeatedStr])); - if headerCols and (k-1 = lastRepeatedPrintCol) then + if headerCols and (k >= lastRepeatedPrintCol) then begin AppendToStream(AStream, ''); headerCols := false; @@ -5007,7 +5007,7 @@ begin r := rr; // Header rows need a special tag - if headerRows and (r-1 = lastRepeatedPrintRow) then + if headerRows and (r >= lastRepeatedPrintRow) then begin AppendToStream(AStream, ''); headerRows := false; diff --git a/components/fpspreadsheet/tests/pagelayouttests.pas b/components/fpspreadsheet/tests/pagelayouttests.pas index 0feb5f82e..0a7875380 100644 --- a/components/fpspreadsheet/tests/pagelayouttests.pas +++ b/components/fpspreadsheet/tests/pagelayouttests.pas @@ -766,6 +766,7 @@ var MyWorksheet: TsWorksheet; rng: TsCellRange; sheetname: String; + r, c: Cardinal; begin TempFile := GetTempFileName; @@ -773,6 +774,9 @@ begin try sheetname := PageLayoutSheet; MyWorksheet := MyWorkbook.AddWorksheet(sheetname); + for r := 0 to 10 do + for c := 0 to 10 do + MyWorksheet.WriteNumber(r, c, r*100+c); MyWorksheet.SetRepeatedPrintRows(AFirstRow, ALastRow); MyWorksheet.SetRepeatedPrintCols(AFirstCol, ALastCol); MyWorkBook.WriteToFile(TempFile, AFormat, true);