Forum > FPSpreadsheet

[SOLVED] FrozenRow/Col in TsWorksheet

(1/1)

totya:
Hi!

As I see sWorksheetGrid support the FrozenRow/Col. Mean these lines/cols do not move when user scrolls.

I'd like if the TsWorksheet support it too (mainly Excel).

Thank you!

wp:

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---program demo_frozen_rows_cols;uses  SysUtils,  FPSpreadsheet, fpsTypes, xlsxOOXML;var  wb: TsWorkbook;  ws: TsWorksheet;  r, c: Integer;begin  wb := TsWorkbook.Create;  try    ws := wb.AddWorksheet('Sheet1');     // Fill worksheet with some data    for r := 0 to 100 do      for c := 0 to 10 do        ws.WriteText(r, c, Format('R%d C%d', [r, c]));     // Prepare frozen columns and frozen rows    ws.LeftPaneWidth := 1;  // There should be 1 frozen column    ws.TopPaneHeight := 2;  // There should be 2 frozen rows    ws.Options := ws.Options + [soHasFrozenPanes];  // Activate this feature.     // Save to file    wb.WriteToFile('test.xlsx', true);  finally    wb.Free;  end;end.

totya:
@wp Thank you for the answer, and for this sample demo! I tried it, it's working. :)

majid.ebru:

--- Quote from: wp on February 13, 2023, 01:25:29 pm ---
--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---program demo_frozen_rows_cols;uses  SysUtils,  FPSpreadsheet, fpsTypes, xlsxOOXML;var  wb: TsWorkbook;  ws: TsWorksheet;  r, c: Integer;begin  wb := TsWorkbook.Create;  try    ws := wb.AddWorksheet('Sheet1');     // Fill worksheet with some data    for r := 0 to 100 do      for c := 0 to 10 do        ws.WriteText(r, c, Format('R%d C%d', [r, c]));     // Prepare frozen columns and frozen rows    ws.LeftPaneWidth := 1;  // There should be 1 frozen column    ws.TopPaneHeight := 2;  // There should be 2 frozen rows    ws.Options := ws.Options + [soHasFrozenPanes];  // Activate this feature.     // Save to file    wb.WriteToFile('test.xlsx', true);  finally    wb.Free;  end;end.
--- End quote ---

@ws Thank you

Navigation

[0] Message Index

Go to full version