You've already forked lazarus-ccr
fpspreadsheet: add demo for html writer
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4219 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -0,0 +1,61 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<CONFIG>
|
||||
<ProjectOptions>
|
||||
<Version Value="9"/>
|
||||
<PathDelim Value="\"/>
|
||||
<General>
|
||||
<Flags>
|
||||
<LRSInOutputDirectory Value="False"/>
|
||||
</Flags>
|
||||
<SessionStorage Value="InProjectDir"/>
|
||||
<MainUnit Value="0"/>
|
||||
<Title Value="htmlwrite"/>
|
||||
<UseAppBundle Value="False"/>
|
||||
</General>
|
||||
<VersionInfo>
|
||||
<StringTable ProductVersion=""/>
|
||||
</VersionInfo>
|
||||
<BuildModes Count="1">
|
||||
<Item1 Name="default" Default="True"/>
|
||||
</BuildModes>
|
||||
<PublishOptions>
|
||||
<Version Value="2"/>
|
||||
<IgnoreBinaries Value="False"/>
|
||||
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
|
||||
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
|
||||
</PublishOptions>
|
||||
<RunParams>
|
||||
<local>
|
||||
<FormatVersion Value="1"/>
|
||||
<LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
|
||||
</local>
|
||||
</RunParams>
|
||||
<RequiredPackages Count="1">
|
||||
<Item1>
|
||||
<PackageName Value="LazUtils"/>
|
||||
</Item1>
|
||||
</RequiredPackages>
|
||||
<Units Count="1">
|
||||
<Unit0>
|
||||
<Filename Value="htmlwrite.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
</Unit0>
|
||||
</Units>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="11"/>
|
||||
<PathDelim Value="\"/>
|
||||
<Target>
|
||||
<Filename Value="htmlwrite"/>
|
||||
</Target>
|
||||
<SearchPaths>
|
||||
<OtherUnitFiles Value="..\..\.."/>
|
||||
<UnitOutputDirectory Value="..\..\lib\$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<Parsing>
|
||||
<SyntaxOptions>
|
||||
<UseAnsiStrings Value="False"/>
|
||||
</SyntaxOptions>
|
||||
</Parsing>
|
||||
</CompilerOptions>
|
||||
</CONFIG>
|
@ -0,0 +1,174 @@
|
||||
{
|
||||
htmltablewrite.lpr
|
||||
|
||||
Demonstrates how to write a table in html format using the fpspreadsheet library
|
||||
}
|
||||
|
||||
program htmlwrite;
|
||||
|
||||
{$mode delphi}{$H+}
|
||||
|
||||
uses
|
||||
Classes, SysUtils, fpstypes, fpspreadsheet, fpshtml;
|
||||
|
||||
var
|
||||
MyWorkbook: TsWorkbook;
|
||||
MyWorksheet: TsWorksheet;
|
||||
MyDir: string;
|
||||
row: Integer;
|
||||
|
||||
begin
|
||||
MyDir := ExtractFilePath(ParamStr(0));
|
||||
|
||||
// Create the spreadsheet
|
||||
MyWorkbook := TsWorkbook.Create;
|
||||
try
|
||||
MyWorksheet := MyWorkbook.AddWorksheet('Sheet');
|
||||
|
||||
// Use first row and column as headers
|
||||
Myworksheet.Options := MyWorksheet.Options + [soHasFrozenPanes];
|
||||
Myworksheet.TopPaneHeight := 1;
|
||||
Myworksheet.LeftPaneWidth := 1;
|
||||
|
||||
// Write colwidth
|
||||
Myworksheet.WriteColWidth(1, 25); // 25 characters
|
||||
|
||||
// Write some cells
|
||||
row := 0;
|
||||
|
||||
MyWorksheet.WriteBlank(row, 0);
|
||||
MyWorksheet.WriteUTF8Text(row, 1, 'Description');
|
||||
MyWorksheet.WriteUTF8Text(row, 2, 'Example');
|
||||
inc(row);
|
||||
|
||||
MyWorksheet.WriteNumber(row, 0, row);
|
||||
MyWorksheet.WriteUTF8Text(row, 1, 'This is a text:');
|
||||
MyWorksheet.WriteUTF8Text(row, 2, 'Hello world!');
|
||||
inc(row);
|
||||
|
||||
MyWorksheet.WriteNumber(row, 0, row);
|
||||
MyWorksheet.WriteUTF8Text(row, 1, 'This is bold text:');
|
||||
Myworksheet.WriteUTF8Text(row, 2, 'Hello world!');
|
||||
Myworksheet.WriteFontStyle(row, 2, [fssBold]);
|
||||
inc(row);
|
||||
|
||||
MyWorksheet.WriteNumber(row, 0, row);
|
||||
MyWorksheet.WriteUTF8Text(row, 1, 'This is a number:');
|
||||
MyWorksheet.WriteNumber(row, 2, 3.141592);
|
||||
Myworksheet.WriteHorAlignment(row, 2, haRight);
|
||||
inc(row);
|
||||
|
||||
MyWorksheet.WriteNumber(row, 0, row);
|
||||
MyWorksheet.WriteUTF8Text(row, 1, 'This is a date:');
|
||||
Myworksheet.WriteDateTime(row, 2, date());
|
||||
inc(row);
|
||||
|
||||
MyWorksheet.WriteNumber(row, 0, row);
|
||||
MyWorksheet.WriteUTF8Text(row, 1, 'This is a long text:');
|
||||
MyWorksheet.WriteUTF8Text(row, 2, 'A very, very, very, very long text, indeed');
|
||||
inc(row);
|
||||
|
||||
MyWorksheet.WriteNumber(row, 0, row);
|
||||
MyWorksheet.WriteUTF8Text(row, 1, 'Centered text:');
|
||||
MyWorksheet.WriteUTF8Text(row, 2, 'I am in the center.');
|
||||
MyWorksheet.WriteHorAlignment(row, 2, haCenter);
|
||||
inc(row);
|
||||
|
||||
MyWorksheet.WriteNumber(row, 0, row);
|
||||
MyWorksheet.WriteUTF8Text(row, 1, 'This is a long text with line break:');
|
||||
Myworksheet.WriteVertAlignment(row, 1, vaTop);
|
||||
MyWorksheet.WriteUTF8Text(row, 2, 'A very, very, very, very long text,<br /> indeed');
|
||||
inc(row);
|
||||
|
||||
MyWorksheet.WriteNumber(row, 0, row);
|
||||
MyWorksheet.WriteUTF8Text(row, 1, 'Merged rows');
|
||||
Myworksheet.MergeCells(row, 1, row+1, 1);
|
||||
MyWorksheet.WriteUTF8Text(row, 2, 'A');
|
||||
inc(row);
|
||||
MyWorksheet.WriteUTF8Text(row, 2, 'B');
|
||||
inc(row);
|
||||
|
||||
MyWorksheet.WriteNumber(row, 0, row);
|
||||
MyWorksheet.WriteUTF8Text(row, 1, 'Merged columns');
|
||||
MyWorksheet.WriteHorAlignment(row, 1, haCenter);
|
||||
MyWorksheet.MergeCells(row, 1, row, 2);
|
||||
inc(row);
|
||||
|
||||
MyWorksheet.WriteNumber(row, 0, row);
|
||||
MyWorksheet.WriteUTF8Text(row, 1, 'Right border:');
|
||||
MyWorksheet.WriteUTF8Text(row, 2, 'medium / red');
|
||||
MyWorksheet.WriteBorders(row, 2, [cbEast]);
|
||||
MyWorksheet.WriteBorderStyle(row, 2, cbEast, lsMedium, scRed);
|
||||
inc(row);
|
||||
|
||||
MyWorksheet.WriteNumber(row, 0, row);
|
||||
MyWorksheet.WriteUTF8Text(row, 1, 'Top border:');
|
||||
MyWorksheet.WriteUTF8Text(row, 2, 'top / dashed');
|
||||
MyWorksheet.WriteBorders(row, 2, [cbNorth]);
|
||||
MyWorksheet.WriteBorderLineStyle(row, 2, cbNorth, lsDashed);
|
||||
inc(row);
|
||||
|
||||
MyWorksheet.WriteNumber(row, 0, row);
|
||||
MyWorksheet.WriteUTF8Text(row, 1, 'Left border:');
|
||||
MyWorksheet.WriteUTF8Text(row, 2, 'left / dotted');
|
||||
MyWorksheet.WriteBorders(row, 2, [cbWest]);
|
||||
MyWorksheet.WriteBorderLineStyle(row, 2, cbWest, lsDotted);
|
||||
inc(row);
|
||||
|
||||
MyWorksheet.WriteNumber(row, 0, row);
|
||||
MyWorksheet.WriteUTF8Text(row, 1, 'Bottom border:');
|
||||
MyWorksheet.WriteUTF8Text(row, 2, 'bottom / double');
|
||||
MyWorksheet.WriteBorders(row, 2, [cbSouth]);
|
||||
MyWorksheet.WriteBorderLineStyle(row, 2, cbSouth, lsDouble);
|
||||
inc(row);
|
||||
|
||||
MyWorksheet.WriteNumber(row, 0, row);
|
||||
MyWorksheet.WriteUTF8Text(row, 1, 'This row is high');
|
||||
MyWorksheet.WriteRowHeight(row, 5);
|
||||
inc(row);
|
||||
|
||||
MyWorksheet.WriteNumber(row, 0, row);
|
||||
MyWorksheet.WriteUTF8Text(row, 1, 'Colors:');
|
||||
MyWorksheet.WriteUTF8Text(row, 2, 'yellow on blue');
|
||||
MyWorksheet.WriteFontColor(row, 2, scYellow);
|
||||
MyWorksheet.WriteBackgroundColor(row, 2, scBlue);
|
||||
inc(row);
|
||||
|
||||
MyWorksheet.WriteNumber(row, 0, row);
|
||||
MyWorksheet.WriteUTF8Text(row, 1, 'RGB background color:');
|
||||
MyWorksheet.WriteUTF8Text(row, 2, 'color #FF77C3'); // HTML colors are big-endian
|
||||
MyWorksheet.WriteBackgroundColor(row, 2, $C377FF); // fps colors are little-endian
|
||||
inc(row);
|
||||
|
||||
MyWorksheet.WriteNumber(row, 0, row);
|
||||
MyWorksheet.WriteUTF8Text(row, 1, 'Bold text:');
|
||||
MyWorksheet.WriteUTF8Text(row, 2, 'Bold text');
|
||||
MyWorksheet.WriteFontStyle(row, 2, [fssBold]);
|
||||
inc(row);
|
||||
|
||||
MyWorksheet.WriteNumber(row, 0, row);
|
||||
MyWorksheet.WriteUTF8Text(row, 1, 'Italic text:');
|
||||
MyWorksheet.WriteUTF8Text(row, 2, 'Italic text');
|
||||
MyWorksheet.WriteFontStyle(row, 2, [fssItalic]);
|
||||
inc(row);
|
||||
|
||||
MyWorksheet.WriteNumber(row, 0, row);
|
||||
MyWorksheet.WriteUTF8Text(row, 1, 'Underlined text:');
|
||||
MyWorksheet.WriteUTF8Text(row, 2, 'Underlined text');
|
||||
MyWorksheet.WriteFontStyle(row, 2, [fssUnderline]);
|
||||
inc(row);
|
||||
|
||||
MyWorksheet.WriteNumber(row, 0, row);
|
||||
MyWorksheet.WriteUTF8Text(row, 1, 'Strike-through text:');
|
||||
MyWorksheet.WriteUTF8Text(row, 2, 'Strike-through text');
|
||||
MyWorksheet.WriteFontStyle(row, 2, [fssStrikeout]);
|
||||
inc(row);
|
||||
|
||||
// Save the spreadsheet to a file
|
||||
MyWorkbook.WriteToFile(MyDir + 'test.html', sfHTML);
|
||||
|
||||
finally
|
||||
MyWorkbook.Free;
|
||||
end;
|
||||
end.
|
||||
|
@ -0,0 +1 @@
|
||||
This demo demonstrates how to use fpspreadsheet to read and write html files which can be opened by the browser.
|
@ -268,8 +268,11 @@ begin
|
||||
AppendToStream(AStream,
|
||||
'<body>');
|
||||
if HTMLParams.SheetIndex < 0 then // active sheet
|
||||
begin
|
||||
if FWorkbook.ActiveWorksheet = nil then
|
||||
FWorkbook.SelectWorksheet(FWorkbook.GetWorksheetByIndex(0));
|
||||
WriteWorksheet(AStream, FWorkbook.ActiveWorksheet)
|
||||
else
|
||||
end else
|
||||
if HTMLParams.SheetIndex = MaxInt then // all sheets
|
||||
for i:=0 to FWorkbook.GetWorksheetCount-1 do
|
||||
WriteWorksheet(AStream, FWorkbook.GetWorksheetByIndex(i))
|
||||
@ -453,6 +456,7 @@ end;
|
||||
|
||||
procedure TsHTMLWriter.WriteToStream(AStream: TStream);
|
||||
begin
|
||||
FWorkbook.UpdateCaches;
|
||||
AppendToStream(AStream,
|
||||
'<!DOCTYPE html>' +
|
||||
'<html>' +
|
||||
|
Reference in New Issue
Block a user