program fpsprdxlsrowhide;
{$mode objfpc}{$H+}
uses
SysUtils, fpspreadsheet, fpstypes, fpsallformats;
procedure WriteTest;
var
b: TsWorkbook;
sh: TsWorksheet;
begin
b := TsWorkbook.Create;
try
Writeln('Creating test files...');
sh := b.AddWorksheet('Test');
sh.WriteText(0, 0, 'Next row is hidden');
sh.WriteText(1, 0, 'this row');
sh.WriteNumber(1,1,1);
sh.WriteFormula(1,2,'=B2*2');
sh.WriteText(2, 0, 'next row too');
sh.WriteNumber(2,1,2);
sh.WriteFormula(2,2,'=B3*2');
sh.WriteNumber(3,1,3);
sh.WriteFormula(3,2,'=B4*2');
sh.WriteFormula(4,2,'=SUM(C2:C4)');
sh.HideRow(1);
sh.HideRow(3);
b.WriteToFile('test2.xls', sfExcel8, true);
WriteLn;
finally
b.Free;
end;
end;
procedure WriteAsFormat(openfile, savefile: string; AFormat: TsSpreadsheetFormat);
var
b: TsWorkbook;
sh: TsWorksheet;
begin
Writeln('Saving test files...');
b := TsWorkbook.Create;
try
b.Options:=b.Options+[boReadFormulas];
b.ReadFromFile(openfile, sfExcel8);
sh := b.GetFirstWorksheet;
//sh.WriteNumber(0, 2, 2094);
b.WriteToFile(savefile, AFormat, true);
finally
b.Free;
end;
end;
begin
//create test2.xls
WriteTest;
// open test2.xls and save as test3.xls
//Test3.xls sollte auch fehlerhaft sein, aber es ist nicht Fehlerhaft.
// Fehler ist alle Zeilen mit Ihnahlt werden versteckt
WriteAsFormat('test2.xls','test3.xls', sfExcel8);
// Ich habe meintest.xls mit Excel2003 erstellt.
// Bei meintest-rowhide-error.xls werden alle Zeilen versteckt
WriteAsFormat('meintest.xls','meintest-rowhide-error.xls', sfExcel8);
//WriteLn('Press ENTER to close...'); ReadLn;
end.