Difference between revisions of "FPSpreadsheet"

From Free Pascal wiki
Jump to navigationJump to search
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||Not implemented||Not implemented
+
|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