PageLayout lazarus / 49-FPSpreadsheet ---------------------------------------------------------------------- jcmontherock · 2018-03-23 10:05 Hello, could you show me how we could use: Worksheet.PageLayout.RepeatedRows ? Thanks in advance. ---------------------------------------------------------------------- wp · 2018-03-23 12:03 cited from http://wiki.lazarus.freepascal.org/FPSpreadsheet#Page_layout: QuoteHeader rows and columns repeated on every printed page can be defined by the RepeatedCols and RepeatedRows records; their elements FirstIndex and LastIndex refer to the indexes of the first and last column or row, respectively, to be repeated. Use the methods SetRepeatedCols and SetRepeatedRows to define these numbers. Note that the second parameter for the last index can be omitted to use only a single header row or column. Here is a sample project which deminstrates the application of repeated rows and columns: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i program demo_pagelayout; {$mode objfpc}{$H+} uses  math,  fpstypes, fpspreadsheet, xlsxooxml; var  book: TsWorkbook;  sheet: TsWorksheet;  row, col: Cardinal;  x: Double; const  XMIN = -10;  XMAX = 10;  N = 100; begin  book := TsWorkbook.Create;  try    sheet := book.AddWorksheet('Sheet1');     sheet.WriteText(0, 0, 'Index');    sheet.WriteHorAlignment(0, 0, haRight);    sheet.WriteText(0, 1, 'x');    sheet.WriteHorAlignment(0, 1, haRight);    sheet.WriteText(0, 2, 'y=sin(x)');    sheet.WriteHorAlignment(0, 2, haRight);    sheet.WriteText(0, 3, 'y=cos(x)');    sheet.WriteHorAlignment(0, 3, haRight);    sheet.WriteText(0, 4, 'y=sin(x)^2');    sheet.WriteHorAlignment(0, 4, haRight);    sheet.WriteText(0, 5, 'y=cos(x)^2');    sheet.WriteHorAlignment(0, 5, haRight);    sheet.WriteText(0, 6, 'y=sin(x)^3');    sheet.WriteHorAlignment(0, 6, haRight);    sheet.WriteText(0, 7, 'y=cos(x)^3');    sheet.WriteHorAlignment(0, 7, haRight);     for row := 1 to N do begin      x := (row - 1) / N * (XMAX - XMIN) + XMIN;      sheet.writeNumber(row, 0, row);      sheet.WriteNumber(row, 1, x, nfFixed, 5);      sheet.WriteNumber(row, 2, sin(x), nfFixed, 5);      sheet.WriteNumber(row, 3, cos(x), nfFixed, 5);      sheet.WriteNumber(row, 4, sin(x)**2, nfFixed, 5);      sheet.WriteNumber(row, 5, cos(x)**2, nfFixed, 5);      sheet.WriteNumber(row, 6, sin(x)**3, nfFixed, 5);      sheet.WriteNumber(row, 7, cos(x)**3, nfFixed, 5);    end;     for col := 1 to 7 do      sheet.WriteBorders(0, col, [cbSouth]);    for row :=1 to N do      sheet.WriteBorders(row, 0, [cbEast]);    sheet.WriteBorders(0, 0, [cbEast, cbSouth]);      // Rows 0 will be repeated    sheet.PageLayout.SetRepeatedRows(0, 0);     // Col 0 will be repeated    sheet.PageLayout.SetRepeatedCols(0, 0);     book.WriteToFile('pagelayout.xlsx', true);  finally    book.Free;  end;end. ---------------------------------------------------------------------- jcmontherock · 2018-03-23 16:16 Thank you. It works fine.