You've already forked lazarus-ccr
fpspreadsheet: Add TsWorksheet.IsEmpty and TsWorkbook.RemoveAllEmptyWorksheets.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5582 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -197,6 +197,8 @@ type
|
|||||||
function ReadWordwrap(ACell: PCell): boolean;
|
function ReadWordwrap(ACell: PCell): boolean;
|
||||||
function ReadBiDiMode(ACell: PCell): TsBiDiMode;
|
function ReadBiDiMode(ACell: PCell): TsBiDiMode;
|
||||||
|
|
||||||
|
function IsEmpty: Boolean;
|
||||||
|
|
||||||
{ Writing of values }
|
{ Writing of values }
|
||||||
function WriteBlank(ARow, ACol: Cardinal): PCell; overload;
|
function WriteBlank(ARow, ACol: Cardinal): PCell; overload;
|
||||||
procedure WriteBlank(ACell: PCell); overload;
|
procedure WriteBlank(ACell: PCell); overload;
|
||||||
@ -761,6 +763,7 @@ type
|
|||||||
function GetWorksheetCount: Integer;
|
function GetWorksheetCount: Integer;
|
||||||
function GetWorksheetIndex(AWorksheet: TsWorksheet): Integer;
|
function GetWorksheetIndex(AWorksheet: TsWorksheet): Integer;
|
||||||
procedure RemoveAllWorksheets;
|
procedure RemoveAllWorksheets;
|
||||||
|
procedure RemoveAllEmptyWorksheets;
|
||||||
procedure RemoveWorksheet(AWorksheet: TsWorksheet);
|
procedure RemoveWorksheet(AWorksheet: TsWorksheet);
|
||||||
procedure SelectWorksheet(AWorksheet: TsWorksheet);
|
procedure SelectWorksheet(AWorksheet: TsWorksheet);
|
||||||
function ValidWorksheetName(var AName: String;
|
function ValidWorksheetName(var AName: String;
|
||||||
@ -3373,6 +3376,25 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{@@ ----------------------------------------------------------------------------
|
||||||
|
Returns true if the worksheet does not contain any cell, column or row records
|
||||||
|
-------------------------------------------------------------------------------}
|
||||||
|
function TsWorksheet.IsEmpty: Boolean;
|
||||||
|
var
|
||||||
|
cell: PCell;
|
||||||
|
begin
|
||||||
|
Result := false;
|
||||||
|
for cell in Cells do
|
||||||
|
if cell^.ContentType <> cctEmpty then
|
||||||
|
exit;
|
||||||
|
|
||||||
|
if (Rows.Count > 0) or (Cols.Count > 0) then
|
||||||
|
exit;
|
||||||
|
|
||||||
|
Result := true;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ Merged cells }
|
{ Merged cells }
|
||||||
|
|
||||||
{@@ ----------------------------------------------------------------------------
|
{@@ ----------------------------------------------------------------------------
|
||||||
@ -8424,6 +8446,22 @@ begin
|
|||||||
FWorksheets.ForEachCall(RemoveWorksheetsCallback, nil);
|
FWorksheets.ForEachCall(RemoveWorksheetsCallback, nil);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{@@ ----------------------------------------------------------------------------
|
||||||
|
Removes all empty worksheets
|
||||||
|
-------------------------------------------------------------------------------}
|
||||||
|
procedure TsWorkbook.RemoveAllEmptyWorksheets;
|
||||||
|
var
|
||||||
|
sheet: TsWorksheet;
|
||||||
|
i: Integer;
|
||||||
|
begin
|
||||||
|
for i:= FWorksheets.Count-1 downto 0 do
|
||||||
|
begin
|
||||||
|
sheet := TsWorksheet(FWorksheets.Items[i]);
|
||||||
|
if sheet.IsEmpty then
|
||||||
|
RemoveWorksheet(sheet);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
{@@ ----------------------------------------------------------------------------
|
{@@ ----------------------------------------------------------------------------
|
||||||
Removes the specified worksheet: Removes the sheet from the internal sheet
|
Removes the specified worksheet: Removes the sheet from the internal sheet
|
||||||
list, generates an event OnRemoveWorksheet, and releases all memory.
|
list, generates an event OnRemoveWorksheet, and releases all memory.
|
||||||
|
Reference in New Issue
Block a user