OExport - XLSX/XLS/ODS/CSV native Delphi/Lazarus import/export library

Latest Version

2.22 (2015/04/30)

Basic info

OExport allows you to generate and read XLSX, XLS, ODS and CSV spreadsheets directly from Delphi & Lazarus. It has also an import feature - you can extract data from XLSX, XLS, ODS and CSV files. Please see the feature matrix below for more details.

Why is OExport the best solution for you:

  • You can create and read XLSX, XLS, ODS and CSV documents with just one code.
  • A wide range of compilers and platforms is supported: Delphi 5, 6, 7, 2005, 2006, 2007, 2009, 2010, XE, XE2, XE3, XE4, XE5, XE6, XE7, XE8 and Lazarus; Win32, Win64, Mac OSX, Linux (Little-Endian platforms only); VCL, FireMonkey, LCL.
  • File types are detected automatically.
  • Easy localization to your language.
  • Formula recalculation engine, see http://www.kluug.at/oexport-help/formula-recalculation-engine/ for details.
  • Template engine: automatically process user-defined XLSX/XLS templates.

The documentation is online: http://www.kluug.at/oexport-help/.
You find an offline copy of the documentation here: oexport-help-offline.zip.

Features

Library design

  • Native pascal object oriented code
  • No external dll libraries are required
  • No dependency on Excel or Calc installation (no OLE)
  • Full unicode support even for non-unicode Delphi versions (D7, D2007 etc.)
  • Write-On-The-Fly and Read-On-The-Fly: export and import huge tables without the need to store the whole document in memory.
  • Reasonably fast (see performance table below).

Officially supported platforms

  • Delphi 5, 6, 7, 2005, 2006, 2007: VCL + full unicode support thanks to WideString.
  • Delphi 2009, 2010, XE: VCL
  • Delphi XE2, XE3, XE4, XE5, XE6, XE7, XE8: VCL + FireMonkey, 32bit + 64bit Windows, Mac OSX.
    Important notice: Delphi ARM compiler (iOS) was not tested yet and may be unsupported.
  • Lazarus 1.0.8: 32bit + 64bit Windows, Linux and Mac OSX (XLS: Little Endian platforms only)

Template Engine

  • Currently only loading of XLSX/XLTX and XLS/XLT templates is supported.
  • Automatically replace cell values and modify cells.
  • Automatically add and process rows as they are defined in the template.
  • Save the generated template in all formats OExport supports: XLSX/ODS/XLS/CSV!

Feature Overview

See the following files for a fast feature overview. These files have been directly exported with OExport:

You can generate those files with the demo application you find in the FREE package (see download tab). They have not been edited after the export in any way.
Please note that XLS exporter doesn't support images and charts and therefore you won't see them in the exported XLS file.
The full source code that was used to generate them can be obtained from the documentation.

Feature Matrix

yes= Supported;yes= Partially supported; no= Not supported;n/a= Not available
Feature ExportImport
XLSX ODS XLS CSV XLSX ODS XLS CSV
Cell types: string, number, percent, currency, scientific, fraction, time, date, datetime yesyesyesyesyesyesyesyes
Rich text in cells yesyesyesn/ayesyesyesn/a
Custom number format yesyesyesn/ayesyesyesn/a
Hyperlinks for string cells yesyesyesn/ayesnoyesn/a
Formulas for all cell types yesyesyesyesyesyesyesn/a
Cell, row, column and worksheet formatting: horizontal + vertical alignment, wrap text, font, background color, borders (color, size and style), text orientation and rotation yesyesyesn/ayesnoyesn/a
Column widths + row heights yesyesyesn/ayesnoyesn/a
Column + row grouping yesyesyesn/ayesnoyesn/a
Conditional formatting yesyesyesn/ayesnoyesn/a
Column + row span (merged cells) yesyesyesn/ayesnoyesn/a
Print settings: page header & footer, page orientation, page margins, page order, page breaks, print scale, table centering, repeat columns & rows, grid lines, table headers yesyesyesn/ayesnoyesn/a
Fixed cells (window fixed scrolling) yesyesyesn/ayesnoyesn/a
Named cells yesyesyesn/ayesnoyesn/a
Cell & worksheet protection: with and without password yesyesyesn/ayesnoyesn/a
Autofilter yesyesnon/ayesnonon/a
Comments yesyesnon/ayesnonon/a
Images: JPEG, PNG, GIF, TIFF
 + fill, border, shadow
yesyesnon/ayesnonon/a
Charts: bars, columns, lines, areas, bubble, scatter; different line, fill, marker and axes styles, sizes, colors; titles ... yesyesnon/anononon/a

Row and column limits

OExport is able to read and write the maximum permitted row and column counts of every supported format.
The limits are the following:
Row countColumn count
XLSX1'048'57616'384
ODS1'048'5761'024
XLS65'536256
CSV2'147'483'6472'147'483'647

Performance

The performance of OExport may vary on used compiler. The best figures are reached with Delphi 2009 and newer.
The following times were measured on an old laptop from 2007 (Intel Core 2 Duo, 1.8 GHz, 4.0 GB RAM, Win 7 32bit). Files consisted of 1 million string cells with shared strings table (SST) either off or on.
1 million string cells ExportImport
XLSX ODS XLS CSV XLSX ODS XLS CSV
D2009+SST off 35 s32 s22 s15 s70 s84 s8 s15 s
SST on 44 s32 s27 s15 s105 s84 s9 s15 s
D5-D2007SST off 92 s75 s44 s42 s178 s170 s17 s32 s
SST on 100 s75 s50 s42 s260 s170 s20 s32 s
LazarusSST off 50 s48 s37 s29 s94 s103 s8 s26 s
SST on 55 s48 s40 s29 s124 s103 s8 s26 s

OFiller

  • OFiller: fill DOCX (Word 2007-2013), ODT (OpenOffice Writer), XLSX (Excel 2007-2013), XLS (Excel 97-XP), ODS (OpenOffice Calc) templates

Screenshots

Features of OExport

Template 1 and generated  XLS document Template 2 and generated ODS document XLSX real-world example (Excel 2007) ODS real-world example (OpenOffice) Export to ODS (LibreOffice) Export to XLSX (Excel 2007) Import from XLSX (Excel 2007) Export Tables with ColSpan and Formula All supported cell types Page header and footer are supported - even with special tags like "Page Number", "Page Count" etc.! XLSX: Image and a pie chart (Excel 2007) ODS: Image and a pie chart (OpenOffice)

OExport on different operating systems

Lazarus demo application Lazarus under Kubuntu - export to ODS Lazarus under Kubuntu - import from XLSX FireMonkey under Mac OSX - export to ODS FireMonkey under Mac OSX - import from XLSX Lazarus under Mac OSX - export to XLSX Lazarus under Mac OSX - import from ODS

OFiller

Fill DOCX Templates (Word 2007)

License

OEXPORT LICENSE INFORMATION
===========================


Copyright (C) 2011-2014 Ondrej Pokorny
  http://www.kluug.net

This license is applicable to all files distributed in this archive if not
stated differently.


*** BEGIN LICENSE BLOCK *****

OExport 2.x LICENCE
-------------------

 1) You may use OExport if:
     a. You use the FREE version.

        OR

     b. You buy a commercial license of the FULL version.

 2) Limitations of the FREE version
     a. There are no limitation per workplace. You can use OExport FREE
        both for commercial and non-commercial purposes.

     b. Only the first worksheet will be exported or imported and a maximum
        of 40 rows and 10 columns.

     c. You may not modify, decompile, disassemble, reverse engineer or
        translate OExport FREE.

 3) Limitations of the FULL version
     a. Single developer license: only the license holder may use OExport.

     b. 2-3 developers license: only maximum of 3 developers within the license
        holder company may use OExport.

     c. 4-5 developers license: only maximum of 5 developers within the license
        holder company may use OExport.

     d. Company license: all developers within the license holder company may use
        OExport.

     e. Licenses may not be sold or transfered to other developers or companies.

     f. There are no limitations in functionality in the FULL version.

     g. You get 2 years of free updates and new releases, starting from the day
        of purchase. After this period you can order extra 2 years of updates
        for 60% of the license price.

 4) You may NOT use OExport for:
     a. Writing libraries and applications that allow other applications to
        make use of OExport functions. An example would be to build an XLSX-
        ODS- or XLS-Export DLL library that uses OExport.

 5) Redistribution of the source code and the DCU's
     a. OExport source code and DCU's may not be redistributed on any kind
        of media and offered for download on any internet server without my
        explicit permission. They also may not be reselled.

 6) Redistribution in binary form
     a. If you haven't bought a commercial license, you have to attribute
        OExport in e.g. the About-Dialog of your software.
        The attribution must contain the name ("OExport") and my homepage
        ("http://www.kluug.net").

     b. If you have bought a commercial license, no attribution is required.

 7) Additional software licensed with OExport
     a. If you purchase OExport, you also get an OXml commercial license
        for the same time period you bought OExport updates for (i.e. you may
        use all OXml updates within 2 years after OExport purchase).

 8) Limited Warranty
     a. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
        EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
        WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS
        WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF
        ALL NECESSARY SERVICING, REPAIR OR CORRECTION. IN NO EVENT SHALL
        KLUUG.NET OR ANY OTHER PARTY WHO MAY HAVE DISTRIBUTED THE SOFTWARE AS
        PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
        SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
        INABILITY TO USE THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
        OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
        PARTIES OR A FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER
        PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
        POSSIBILITY OF SUCH DAMAGES.


***** END LICENSE BLOCK *****

Commercial license

All commercial licenses include full source code of OExport that can be used on all officially supported platforms.

If you purchase OExport, you also get an OXml commercial license for the same time period you bought OExport updates for (i.e. you may use all OXml updates within 2 years after OExport purchase).

You may order a roality-free commercial license for a specified number of developers using OExport in your company. A commercial license allows you to use OExport in any kind of application commercial or freeware that does not break the Section 4. of the license ("DLL library").

You also get 2 years free updates and new releases with priority email support.
With these resources you can add XLSX/ODS support to your applications quickly and with ease.

Go to OExport online help.

Pricing & Order

Online orders are managed by PayPal. I also accept bank transfers to my bank account. In this case, please send me an email with your billing address and I send you my account number.

You receive an invoice per email after your payment.

All prices are without VAT.

I offer you a 30-days money-back guarantee if you can't use OExport for what is advertised on this page (because of bugs, compatibility problems etc.).

Commercial licenses & help access

OExport+OXml
for 1 developer
EUR 99,- (~ USD 135,-)
OExport+OXml
for max. 3 developers within one company
EUR 199,- (~ USD 275,-)
OExport+OXml
for max. 5 developers within one company
EUR 299,- (~ USD 413,-)
OExport+OXml
for unlimited developers within one company
EUR 399,- (~ USD 550,-)

Change log

OEXPORT RELEASE INFORMATION
===========================

  Version 2.22 (2015-04-28)

    New features
      + TCellHAlignment - new options cahCenterContinuous, cahDistributed.
      + XLS formulas support references accross worksheets.
      + TExportChartData.ShowLabels changed from Boolean to TExportChartDataShowLabels.
        ! Use [] for false.
        ! Use [eslValue] for true.
      + TExportChartAxis has new properties: ExcelNumberFormat, OriginAt, OriginValue
      + TExportWorkSheet has new properties: Visibility and NewCellStringFormat
      + TExportWindowSettings has new properties: ShowFormulas and ShowZeros
      + Added data validation support: TExportCell.DataValidation
      + Added support of named cells within a sheet: TExportWorkSheet.NamedCells
      * Improved formula recalculation engine and XLS formula support.
      * Bug fix: zero date/time was exported as empty cell.
      * Removed TPAbbrevia dependency. OExport now uses native ZLib on all platforms. As a result,
        export in Lazarus, Delphi XE and older is faster and uses less memory.
      * Improved image export: images are not loaded into memory if they are
        exported from files.
      * Some other small improvements and bug fixes.

    Installation
      * If you want to update OExport, you have to update OXml as well (OXml is included in the zip package too).
        If you use packages, you have to recompile them! (Both OXml and OExport packages).



  Version 2.21 (2014-12-10)

    New features
      + CSV import/export was completely reworked (also some bugs were fixed).

    Installation
      * If you want to update OExport, you have to update OXml as well (OXml is included in the zip package too).
        If you use packages, you have to recompile them! (Both OXml and OExport packages).


  Version 2.20 (2014-11-20)

    New features
      + TOExport.LoadOnTheFlyOnAddRow has a new outCancelLoading parameter - you can break loading of the current
        worksheet if you set outCancelLoading to true.
      + Some bug fixes.

    Installation
      * If you want to update OExport, you have to update OXml as well (OXml is included in the zip package too).
        If you use packages, you have to recompile them! (Both OXml and OExport packages).


  Version 2.19 (2014-07-11)

    New features
      + Support for boolean cells.
      + Formula recalculation engine enhanced for boolean functions.
      + Some bug fixes.

    Installation
      * If you want to update OExport, you have to install/update OXml as well (OXml is included in the zip package too).
        If you use packages, you have to recompile them! (Both OXml and OExport packages).


(Please see the installation package for a complete change log).

Download

Please be sure you check the license information before downloading any of the files below.

OExport FREE/TRIAL package

OExport offline documentation

Installation

1.) Add OExport path to your library - please mind your Delphi version!

  For Delphi XE4 32bit, the path is:
    {INSTALLATION DIRECTORY}\OExport\DelphiXE4\Win32\

2.) Add OXml path to your library.

  The path is:
    {INSTALLATION DIRECTORY}\OXml\utils\

3.) Run the demos from your Delphi IDE.

  You find the demos in:
    {INSTALLATION DIRECTORY}\OExport\demo\source\
    
4.) Run the compiled FULL demo

  You find the precompiled demo of the commercial full version in:
    {INSTALLATION DIRECTORY}\demo\compiled-fulldemo\

Important notice

The FREE/TRIAL package contains OXml already. OXml is licensed under CPAL 1.0.

Compiled applications without source code

Contact me for more information (you can write in czech/english/german/russian): Email