You've already forked lazarus-ccr
fpspreadsheet: restructure examples/other folder.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7494 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -8,14 +8,15 @@
|
||||
<MainUnitHasCreateFormStatements Value="False"/>
|
||||
<MainUnitHasTitleStatement Value="False"/>
|
||||
<MainUnitHasScaledStatement Value="False"/>
|
||||
<CompatibilityMode Value="True"/>
|
||||
</Flags>
|
||||
<SessionStorage Value="InProjectDir"/>
|
||||
<Title Value="demo_conditional_formatting"/>
|
||||
<UseAppBundle Value="False"/>
|
||||
<ResourceType Value="res"/>
|
||||
</General>
|
||||
<BuildModes>
|
||||
<Item Name="Default" Default="True"/>
|
||||
<BuildModes Count="1">
|
||||
<Item1 Name="Default" Default="True"/>
|
||||
</BuildModes>
|
||||
<PublishOptions>
|
||||
<Version Value="2"/>
|
||||
@ -24,16 +25,16 @@
|
||||
<RunParams>
|
||||
<FormatVersion Value="2"/>
|
||||
</RunParams>
|
||||
<RequiredPackages>
|
||||
<Item>
|
||||
<RequiredPackages Count="1">
|
||||
<Item1>
|
||||
<PackageName Value="laz_fpspreadsheet"/>
|
||||
</Item>
|
||||
</Item1>
|
||||
</RequiredPackages>
|
||||
<Units>
|
||||
<Unit>
|
||||
<Units Count="1">
|
||||
<Unit0>
|
||||
<Filename Value="demo_conditional_formatting.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
</Unit>
|
||||
</Unit0>
|
||||
</Units>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
@ -48,16 +49,16 @@
|
||||
</SearchPaths>
|
||||
</CompilerOptions>
|
||||
<Debugging>
|
||||
<Exceptions>
|
||||
<Item>
|
||||
<Exceptions Count="3">
|
||||
<Item1>
|
||||
<Name Value="EAbort"/>
|
||||
</Item>
|
||||
<Item>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<Name Value="ECodetoolError"/>
|
||||
</Item>
|
||||
<Item>
|
||||
</Item2>
|
||||
<Item3>
|
||||
<Name Value="EFOpenError"/>
|
||||
</Item>
|
||||
</Item3>
|
||||
</Exceptions>
|
||||
</Debugging>
|
||||
</CONFIG>
|
||||
|
@ -28,7 +28,7 @@ begin
|
||||
// ... set the borders
|
||||
fmt.SetBorders([cbNorth, cbEast, cbWest], scBlack, lsThin);
|
||||
fmt.SetBorders([cbSouth], scRed, lsThick);
|
||||
// ... set the font (bold) ---- NOT SUPPORTED AT THE MOMENT...
|
||||
// ... set the font (bold) ---- NOT SUPPORTED AT THE MOMENT FOR WRITING TO XLSX...
|
||||
font := wb.CloneFont(0);
|
||||
font.Style := [fssBold, fssItalic];
|
||||
font.Color := scRed;
|
||||
|
@ -0,0 +1,69 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<CONFIG>
|
||||
<ProjectOptions>
|
||||
<Version Value="11"/>
|
||||
<PathDelim Value="\"/>
|
||||
<General>
|
||||
<Flags>
|
||||
<MainUnitHasCreateFormStatements Value="False"/>
|
||||
<MainUnitHasTitleStatement Value="False"/>
|
||||
<MainUnitHasScaledStatement Value="False"/>
|
||||
</Flags>
|
||||
<SessionStorage Value="InProjectDir"/>
|
||||
<MainUnit Value="0"/>
|
||||
<Title Value="demo_protection"/>
|
||||
<UseAppBundle Value="False"/>
|
||||
<ResourceType Value="res"/>
|
||||
</General>
|
||||
<BuildModes Count="1">
|
||||
<Item1 Name="Default" Default="True"/>
|
||||
</BuildModes>
|
||||
<PublishOptions>
|
||||
<Version Value="2"/>
|
||||
</PublishOptions>
|
||||
<RunParams>
|
||||
<FormatVersion Value="2"/>
|
||||
<Modes Count="0"/>
|
||||
</RunParams>
|
||||
<RequiredPackages Count="1">
|
||||
<Item1>
|
||||
<PackageName Value="laz_fpspreadsheet"/>
|
||||
</Item1>
|
||||
</RequiredPackages>
|
||||
<Units Count="1">
|
||||
<Unit0>
|
||||
<Filename Value="demo_protection.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
</Unit0>
|
||||
</Units>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="11"/>
|
||||
<PathDelim Value="\"/>
|
||||
<Target>
|
||||
<Filename Value="demo_protection"/>
|
||||
</Target>
|
||||
<SearchPaths>
|
||||
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<Linking>
|
||||
<Debugging>
|
||||
<UseExternalDbgSyms Value="True"/>
|
||||
</Debugging>
|
||||
</Linking>
|
||||
</CompilerOptions>
|
||||
<Debugging>
|
||||
<Exceptions Count="3">
|
||||
<Item1>
|
||||
<Name Value="EAbort"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<Name Value="ECodetoolError"/>
|
||||
</Item2>
|
||||
<Item3>
|
||||
<Name Value="EFOpenError"/>
|
||||
</Item3>
|
||||
</Exceptions>
|
||||
</Debugging>
|
||||
</CONFIG>
|
@ -0,0 +1,53 @@
|
||||
program demo_protection;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
uses
|
||||
Classes, SysUtils,
|
||||
fpstypes, fpspreadsheet, fpsallformats, fpsutils, fpscrypto;
|
||||
|
||||
const
|
||||
PASSWORD = 'lazarus';
|
||||
|
||||
var
|
||||
book: TsWorkbook;
|
||||
sheet: TsWorksheet;
|
||||
cell: PCell;
|
||||
c: TsCryptoInfo;
|
||||
begin
|
||||
book := TsWorkbook.Create;
|
||||
try
|
||||
sheet := book.AddWorksheet('Sheet1');
|
||||
|
||||
// Add an unprotected cell
|
||||
cell := sheet.WriteText(0, 0, 'Unprotected cell');
|
||||
sheet.WriteCellProtection(cell, []);
|
||||
|
||||
// Add a protected cell
|
||||
sheet.WriteText(1, 0, 'Protected cell');
|
||||
|
||||
// Activate worksheet protection such that a password is required to
|
||||
// change the protection state
|
||||
InitCryptoInfo(c);
|
||||
c.Algorithm := caExcel;
|
||||
c.PasswordHash := Format('%.4x', [ExcelPasswordHash(PASSWORD)]);
|
||||
sheet.CryptoInfo := c;
|
||||
sheet.Protection := [spDeleteRows, spDeleteColumns, spInsertRows, spInsertColumns];
|
||||
sheet.Protect(true);
|
||||
|
||||
book.WriteToFile('protected.xls', sfExcel8, true);
|
||||
book.WriteToFile('protected.xlsx', sfOOXML, true);
|
||||
// Note ODS does not write the excel password correctly, yet. --> protection cannot be removed.
|
||||
book.WriteToFile('protected.ods', sfOpenDocument, true);
|
||||
|
||||
finally
|
||||
book.Free;
|
||||
end;
|
||||
|
||||
WriteLn('Open the files "protected.*" in your spreadsheet application.');
|
||||
WriteLn('Only cell A1 can be modifed.');
|
||||
WriteLn('Press [ENTER] to quit...');
|
||||
ReadLn;
|
||||
|
||||
end.
|
||||
|
@ -1,27 +1,47 @@
|
||||
This folder contains various demo applications:
|
||||
|
||||
- demo_formula_func: shows how a user-provided function can be registered in
|
||||
fpspreadsheet for usage in rpn formulas. The example covers some financial
|
||||
functions.
|
||||
- cell_formats/formatting/demo_write_formatting: shows some simple cell formatting
|
||||
|
||||
- demo_recursive_calc: demonstrates recursive calculation of formulas. All
|
||||
formulas in this demo depend on the result of the formula in the next cell,
|
||||
except for the last cell. When the formula in the first cell is calculated
|
||||
recursive calculation of the other cells is requested.
|
||||
- colors/demo_write_colors: shows the colors of the Excel8 color palette
|
||||
|
||||
- demo_virtualmode_writing: demonstrates how the virtual mode of the workbook
|
||||
can be used to create huge spreadsheet files.
|
||||
- conditional_formatting/demo_conditional_formatting: demonstrates how
|
||||
a cell range can be formatted depending on the cell content ("conditional
|
||||
formatting").
|
||||
|
||||
- demo_virtualmode_reading: demonstrates how the virtual mode of the workbook
|
||||
can be used to read huge spreadsheet files. Requires the file written by
|
||||
demo_virtualmode_writing.
|
||||
- expression_parser_demo_expression_parser: shows how the formula engine of
|
||||
FPSpreadsheet is used.
|
||||
|
||||
- demo_write_colors: show the colors of the Excel8 color palette
|
||||
- header_footer_images/demo_write_headerfooter_images: adds images to
|
||||
worksheet headers and footers
|
||||
|
||||
- demo_write_formatting: shows some simple cell formatting
|
||||
- images/demo_write_images: shows how to create workbooks/worksheets with
|
||||
embedded images.
|
||||
|
||||
- demo_write_formula: shows some rpn formulas
|
||||
- protection/demo_protection: demonstrates cell and sheet protection
|
||||
supported by FPSpreadsheet.
|
||||
|
||||
- recursive_calculation/demo_recursive_calc: demonstrates recursive
|
||||
calculation of formulas. All formulas in this demo depend on the result
|
||||
of the formula in the next cell, except for the last cell. When the formula
|
||||
in the first cell is calculated recursive calculation of the other cells
|
||||
is requested.
|
||||
|
||||
- rpn_formulas/demo_write_formula: shows some rpn formulas
|
||||
|
||||
- searching/demo_search: demonstrates how specific cell content can be
|
||||
searched within a worksheet
|
||||
|
||||
- sorting/demo_sorting: shows how cell ranges can be sorted within FPSpreadsheet
|
||||
|
||||
- user_defined_formulas/demo_formula_func: shows how a user-provided function
|
||||
can be registered in fpspreadsheet for usage in rpn formulas. The example
|
||||
covers some financial functions.
|
||||
|
||||
- virtual_mode/demo_virtualmode_writing: demonstrates how the virtual mode
|
||||
of the workbook can be used to create huge spreadsheet files.
|
||||
|
||||
- virtual_mode/demo_virtualmode_reading: demonstrates how the virtual mode
|
||||
of the workbook can be used to read huge spreadsheet files. Requires the
|
||||
file written by demo_virtualmode_writing.
|
||||
|
||||
- demo_write_images: adds images to worksheets
|
||||
|
||||
- demo_write_headerfooter_images: adds images to worksheet headers and footers
|
||||
|
Reference in New Issue
Block a user