How to create a new sheet containing different content? lazarus / 49-FPSpreadsheet ---------------------------------------------------------------------- Jvan · 2020-08-21 22:18 When I create new sheets, they have the same content the first has. ---------------------------------------------------------------------- winni · 2020-08-21 22:53 Hi! A sheet in a bed? A sheet in a ship? An sheet almanac ? What are you talking about? Winni ---------------------------------------------------------------------- Jvan · 2020-08-21 23:17 FPSpreadsheet, spreadsheet. A new worksheet/tab ---------------------------------------------------------------------- Handoko · 2020-08-22 02:10 Should be something like this: 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 unit Unit1; {$mode objfpc}{$H+} interface uses  Classes, SysUtils, Forms, Controls, StdCtrls,  fpspreadsheetgrid, fpspreadsheetctrls, ComCtrls; type   { TForm1 }   TForm1 = class(TForm)    Button1: TButton;    sWorkbookSource1: TsWorkbookSource;    sWorkbookTabControl1: TsWorkbookTabControl;    sWorksheetGrid1: TsWorksheetGrid;    procedure Button1Click(Sender: TObject);    procedure FormCreate(Sender: TObject);  end; var  Form1: TForm1; implementation {$R *.lfm} { TForm1 } procedure TForm1.Button1Click(Sender: TObject);var  i: Integer;begin  i := sWorkbookSource1.Workbook.GetWorksheetCount + 1;  sWorkbookSource1.Workbook.AddWorksheet('Sheet' + i.ToString);end; procedure TForm1.FormCreate(Sender: TObject);begin  sWorksheetGrid1.Anchors             := [akTop, akLeft, akRight, akBottom];  sWorkbookTabControl1.Anchors        := [akLeft, akRight, akBottom];  sWorkbookTabControl1.TabPosition    := tpBottom;  sWorksheetGrid1.WorkbookSource      := sWorkbookSource1;  sWorkbookTabControl1.WorkbookSource := sWorkbookSource1;  Button1.Anchors                     := [akLeft, akRight, akBottom];end; end. ---------------------------------------------------------------------- Jvan · 2020-08-22 14:53 Thanks! ---------------------------------------------------------------------- Jvan · 2020-08-24 21:27 Quote from: Handoko on August 22, 2020, 04:10:21 amShould be something like this: 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 unit Unit1; {$mode objfpc}{$H+} interface uses  Classes, SysUtils, Forms, Controls, StdCtrls,  fpspreadsheetgrid, fpspreadsheetctrls, ComCtrls; type   { TForm1 }   TForm1 = class(TForm)    Button1: TButton;    sWorkbookSource1: TsWorkbookSource;    sWorkbookTabControl1: TsWorkbookTabControl;    sWorksheetGrid1: TsWorksheetGrid;    procedure Button1Click(Sender: TObject);    procedure FormCreate(Sender: TObject);  end; var  Form1: TForm1; implementation {$R *.lfm} { TForm1 } procedure TForm1.Button1Click(Sender: TObject);var  i: Integer;begin  i := sWorkbookSource1.Workbook.GetWorksheetCount + 1;  sWorkbookSource1.Workbook.AddWorksheet('Sheet' + i.ToString);end; procedure TForm1.FormCreate(Sender: TObject);begin  sWorksheetGrid1.Anchors             := [akTop, akLeft, akRight, akBottom];  sWorkbookTabControl1.Anchors        := [akLeft, akRight, akBottom];  sWorkbookTabControl1.TabPosition    := tpBottom;  sWorksheetGrid1.WorkbookSource      := sWorkbookSource1;  sWorkbookTabControl1.WorkbookSource := sWorkbookSource1;  Button1.Anchors                     := [akLeft, akRight, akBottom];end; end. And how can I access each worksheet to change the values and style of each by code? ---------------------------------------------------------------------- Handoko · 2020-08-25 04:17 Here it is: 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 unit Unit1; {$mode objfpc}{$H+} interface uses  Classes, SysUtils, Forms, Controls, StdCtrls,  fpspreadsheet, fpsTypes, fpspreadsheetgrid, fpspreadsheetctrls, ComCtrls; type   { TForm1 }   TForm1 = class(TForm)    Button1: TButton;    sWorkbookSource1: TsWorkbookSource;    sWorkbookTabControl1: TsWorkbookTabControl;    sWorksheetGrid1: TsWorksheetGrid;    procedure Button1Click(Sender: TObject);    procedure FormCreate(Sender: TObject);  end; var  Form1: TForm1; implementation {$R *.lfm} { TForm1 } procedure TForm1.Button1Click(Sender: TObject);var  aWorksheet: TsWorksheet;  i: Integer;begin  i := sWorkbookSource1.Workbook.GetWorksheetCount + 1;  sWorkbookSource1.Workbook.AddWorksheet('Sheet' + i.ToString);   aWorksheet := sWorkbookSource1.Workbook.GetFirstWorksheet;  aWorksheet.WriteColWidth(0, 90, suPoints);  aWorksheet.WriteText(0, 0, 'This is first sheet');  aWorksheet.WriteText(2, 0, 'This is red');  aWorksheet.WriteFontColor(2, 0, scRed);   aWorksheet := sWorkbookSource1.Workbook.GetNextWorksheet(aWorksheet);  aWorksheet.WriteText(0, 0, 'Test');  aWorksheet.WriteFontSize(0, 0, 20);  aWorksheet.WriteFontStyle(0, 0, [fssBold, fssItalic]);  aWorksheet.WriteText(2, 0, 'Yellow');  aWorksheet.WriteBackgroundColor(2, 0, scYellow);end; procedure TForm1.FormCreate(Sender: TObject);begin  sWorksheetGrid1.Anchors           := [akTop, akLeft, akRight, akBottom];  sWorkbookTabControl1.Anchors        := [akLeft, akRight, akBottom];  sWorkbookTabControl1.TabPosition    := tpBottom;  sWorksheetGrid1.WorkbookSource      := sWorkbookSource1;  sWorkbookTabControl1.WorkbookSource := sWorkbookSource1;  Button1.Anchors                     := [akLeft, akRight, akBottom];end; end. ---------------------------------------------------------------------- Jvan · 2020-08-25 05:00 Thanks