Difference between revisions of "FPSpreadsheet"
Sekelsenmat (talk | contribs) |
|||
Line 100: | Line 100: | ||
|Excel 4.0||No||Not implemented||Not implemented | |Excel 4.0||No||Not implemented||Not implemented | ||
|---- | |---- | ||
− | |Excel 5.0 (Excel 5.0 and 95)||Yes||Working||Working | + | |Excel 5.0 (Excel 5.0 and 95)||Yes||Working*||Working |
|---- | |---- | ||
− | |Excel 8.0 (Excel 97, 2000, XP and 2003)||Yes|| | + | |Excel 8.0 (Excel 97, 2000, XP and 2003)||Yes||Working*||Working |
|---- | |---- | ||
|Microsoft OOXML||Yes||Not implemented||Not implemented | |Microsoft OOXML||Yes||Not implemented||Not implemented | ||
Line 108: | Line 108: | ||
|OpenDocument||Yes||Not implemented||Working | |OpenDocument||Yes||Not implemented||Working | ||
|} | |} | ||
+ | |||
+ | *) Some cell could be returned blank due missing or non ready implemented number and text formats. | ||
== Changelog == | == Changelog == |
Revision as of 20:00, 2 June 2009
The fpSpreadsheet library offers a convenient way to generate and read spreadsheet documents in various formats. The library is written in a very flexible manner, capable of being extended to support any number of formats easily.
API Documentation
In CHM format here:
http://lazarus-ccr.svn.sourceforge.net/viewvc/lazarus-ccr/components/fpspreadsheet/fpspreadsheet.chm
Examples
To create a project which uses the fpspreadsheet library, add the fpspreadsheet_pkg package to it's Lazarus project, or add the base directory of fpspreadsheet to you compiler options if using another IDE.
Excel 5 example
<delphi> { excel5demo.dpr
Demonstrates how to write an Excel 5.x file using the fpspreadsheet library
You can change the output format by changing the OUTPUT_FORMAT constant
AUTHORS: Felipe Monteiro de Carvalho } program excel5demo;
{$mode delphi}{$H+}
uses
Classes, SysUtils, fpspreadsheet, fpsallformats, fpspreadsheet_pkg;
const OUTPUT_FORMAT = sfExcel5;
var
MyWorkbook: TsWorkbook; MyWorksheet: TsWorksheet; MyFormula: TRPNFormula; MyDir: string;
begin
// Open the output file MyDir := ExtractFilePath(ParamStr(0));
// Create the spreadsheet MyWorkbook := TsWorkbook.Create; MyWorksheet := MyWorkbook.AddWorksheet('My Worksheet');
// Write some number cells MyWorksheet.WriteNumber(0, 0, 1.0); MyWorksheet.WriteNumber(0, 1, 2.0); MyWorksheet.WriteNumber(0, 2, 3.0); MyWorksheet.WriteNumber(0, 3, 4.0);
// Write the formula E1 = A1 + B1 // or, in RPN: A1, B1, + SetLength(MyFormula, 3); MyFormula[0].TokenID := INT_EXCEL_TOKEN_TREFV; {A1} MyFormula[0].Col := 0; MyFormula[0].Row := 0; MyFormula[1].TokenID := INT_EXCEL_TOKEN_TREFV; {B1} MyFormula[1].Col := 1; MyFormula[1].Row := 0; MyFormula[2].TokenID := INT_EXCEL_TOKEN_TADD; {+} MyWorksheet.WriteRPNFormula(0, 4, MyFormula);
// Creates a new worksheet MyWorksheet := MyWorkbook.AddWorksheet('My Worksheet 2');
// Write some string cells MyWorksheet.WriteAnsiText(0, 0, 'First'); MyWorksheet.WriteAnsiText(0, 1, 'Second'); MyWorksheet.WriteAnsiText(0, 2, 'Third'); MyWorksheet.WriteAnsiText(0, 3, 'Fourth');
// Save the spreadsheet to a file MyWorkbook.WriteToFile(MyDir + 'test' + STR_EXCEL_EXTENSION, OUTPUT_FORMAT); MyWorkbook.Free;
end. </delphi>
Subversion
svn co https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/fpspreadsheet fpspreadsheet
Current Progress
Progress by supported format:
Format | Supports multiple sheets? | Reader Progress | Writer Progress |
---|---|---|---|
Excel 2.x | No | Working | Working |
Excel 3.0 | No | Not implemented | Not implemented |
Excel 4.0 | No | Not implemented | Not implemented |
Excel 5.0 (Excel 5.0 and 95) | Yes | Working* | Working |
Excel 8.0 (Excel 97, 2000, XP and 2003) | Yes | Working* | Working |
Microsoft OOXML | Yes | Not implemented | Not implemented |
OpenDocument | Yes | Not implemented | Working |
- ) Some cell could be returned blank due missing or non ready implemented number and text formats.
Changelog
Jan 2009
- Implemented a cross-platform support for OLE file. Now Excel 5.0 files can be created in any operating system.
- Adds read support for Excel 2.1
Feb 2008
- Initial commit to lazarus-ccr with write support for Excel 2.1, Excel 5.0 (Windows only) and experimental OOXML and OpenDocument
License
The same modified LGPL as the Lazarus Component Library
See also
External Links
- Microsoft OLE Document Format - http://sc.openoffice.org/compdocfileformat.pdf
- Excel file format description - http://sc.openoffice.org/excelfileformat.pdf