You've already forked lazarus-ccr
50 lines
1.0 KiB
ObjectPascal
50 lines
1.0 KiB
ObjectPascal
![]() |
program comments_demo_read;
|
||
|
|
||
|
uses
|
||
|
SysUtils, fpspreadsheet, fpstypes, fpsutils, fpsallformats;
|
||
|
const
|
||
|
FILE_NAME = 'test';
|
||
|
|
||
|
function RemoveLinebreaks(s: String): String;
|
||
|
var
|
||
|
i: Integer;
|
||
|
begin
|
||
|
SetLength(Result, Length(s));
|
||
|
for i := 1 to Length(s) do
|
||
|
if s[i] in [#10, #13] then
|
||
|
Result[i] := ' '
|
||
|
else
|
||
|
Result[i] := s[i];
|
||
|
end;
|
||
|
|
||
|
var
|
||
|
workbook: TsWorkbook;
|
||
|
worksheet: TsWorksheet;
|
||
|
cmnt: PsComment;
|
||
|
txt: string;
|
||
|
i: Integer;
|
||
|
begin
|
||
|
workbook := TsWorkbook.Create;
|
||
|
try
|
||
|
workbook.ReadFromFile(FILE_NAME + '.xlsx', sfOOXML);
|
||
|
for i := 0 to workbook.GetWorksheetCount-1 do
|
||
|
begin
|
||
|
worksheet := workbook.GetWorksheetByIndex(i);
|
||
|
WriteLn('Worksheet "', worksheet.Name, '":');
|
||
|
for cmnt in worksheet.Comments do
|
||
|
begin
|
||
|
txt := RemoveLinebreaks(cmnt^.Text);
|
||
|
WriteLn(' Comment in cell ', GetCellString(cmnt^.Row, cmnt^.Col), ': "', txt, '"');
|
||
|
end;
|
||
|
WriteLn;
|
||
|
end;
|
||
|
finally
|
||
|
workbook.Free;
|
||
|
end;
|
||
|
|
||
|
WriteLn;
|
||
|
WriteLn('Press ENTER to close...');
|
||
|
ReadLn;
|
||
|
end.
|
||
|
|