New! SpreadScript 2.0 beta
SpreadScript provides Perl, Python, and Tcl with a spreadsheet calculation engine that includes the capability to read and write native Microsoft Excel (XLS) spreadsheet files on Linux and Solaris! The 2.0 beta version provides many enhancements over the previous version 1.2.1, including:
For an example of a web application built with SpreadScript 2.0 + DHTML, visit sheet2web.com
- Greatly enhanced Excel compatibility:
- Reads and writes BIFF7 and BIFF8 (.xls) file formats
- Full support for multi-sheet (3-D) formulas
- Enhanced support for named cells and ranges
- More Excel-compatible functions (see list)
- Thread-safe library
- Improved HTML export (ask about DHTML)
- Many performance improvements and bug fixes
Click here to download SpreadScript and get a free 30-day evaluation license!
If you have questions, comments, or problems, please send us email at firstname.lastname@example.org.
SpreadScript provides a powerful spreadsheet engine for the Perl, Python and Tcl scripting languages. SpreadScript combines the speed of a C library implementation with the convenience of a high-level scripting API. This combination provides scripting languages with a fast, powerful spreadsheet calculation engine without the bulk and overhead of a GUI application.
Since SpreadScript is a complete spreadsheet calculation engine, sophisticated computations in scripting languages are no more complex than simply building a spreadsheet. Complex formula-based calculations are handled by the spreadsheet engine rather than many lines of tedious and error-prone code. Spreadsheet files can be used as templates to drive applications, providing the ability for business users to define and change applications simply by editing the spreadsheet on which the application is based.
SpreadScript allows Linux and Solaris platforms to generate Excel files, giving you the ability to dynamically create spreadsheets from databases, web sites, web forms, and more. Provide dynamically-generated Excel files for download from a web site or automatically email them to customers using standard email file attachments.
Note: SpreadScript can also be used directly from C. Let us know if you are interested in using the C API.
The latest manuals and API documentation are in the "doc" subdirectory in the distribution. There is a 350-page SpreadScript User's Guide in PDF, an HTML version of the SpreadScript User's Guide, and a single-page HTML API reference for each language (Perl API, Python API, Tcl API). The documentation for the formula syntax and spreadsheet functions used by SpreadScript is included in the distribution.
There are sample scripts in the "samples" subdirectory. The "simple.*" scripts accomplish the same task in Perl, Python, and Tcl. Those scripts differ only in syntax and are the fastest way to become familiar with how to use SpreadScript. There are additional scripts demonstrating how to convert comma-separated values (CSV) files to Excel files and how to convert an Excel file into HTML.
Simple Example Scripts
The following scripts demonstrate how to use SpreadScript in each of the scripting languages. Other than the scripting language, the scripts are identical. These scripts are inluded in the "samples" directory of the distribution.
The Development License is $195 per developer and is for development only (not production or deployment use). Both the Evaluation License and the Development License cause SpreadScript to insert a "Created with SpreadScript" worksheet in each Excel workbook.
Please contact us for Deployment License pricing.
To purchase a license please send us email at email@example.com.
Changes from SpreadScript 1.2 to 1.2.1.
Changes from SpreadScript 1.1 to 1.2.
The following is a list of enhancements and fixes in SpreadScript 1.2.1.
- fixed bug in the handling of optimized Excel formulas
- changed exportHTML() to cascading style sheets (CSS)
Changes from SpreadScript 1.0 to 1.1
The following is a list of enhancements and fixes in SpreadScript 1.2.
- added experimental Java support
- Excel spreadsheets created with SpreadScript now use less space to store certain types of numbers (more improvement in a future release)
- fixed exception handling problem where exceptions were not getting cleared once set
- added support for European-style dates where the day precedes the month (FMT_DATE_ALT -- dd/mm/yy); importTSV() and importCSV() each now have an optional argument to choose between mm/dd/yy and dd/mm/yy
- various improvements in reading Excel files
- fixed bug in LARGE() and SMALL() that occurred when finding the Nth largest/smallest value when N exceeded the number of non-empty cells in the specified rangePERCENTRANK() and MODE() now work with ranges of empty cells
- fixed problem with reading Excel 95 files produced by Gnumeric
Microsoft and Excel are trademarks of Microsoft Corporation. All other trademarks are the properties of their respective owners.
The following is a list of enhancements and fixes in SpreadScript 1.1.
- Added Excel compatibility mode that now allows the use of Excel syntax, such as : for ranges (e.g., A1:B3); this mode may be turned on globally for all newly created Workbook objects with setDefaultExcelMode() or turned on for a particular Workbook using Workbook::setExcelMode(). When in Excel mode, the functions that begin with "XL" don't use that prefix in Excel mode (e.g., XLCHOOSE() is just CHOOSE() in Excel mode).
- SpreadScript is now capable of properly reading and writing Excel files that are larger than 7 MB.
- The IF() function is now properly supported in Excel files.
- The string concatenation operator "&" (single ampersand) is now properly supported in Excel files.
- Range::setFormula() now works correctly when the formula is a number, such as Range::setFormula("1").
- Worksheet::getFormula() works correctly when the cell is empty.
- Worksheet::setFormula() now properly throws an exception when the formula specified contains a syntax error.
- The Perl binding no longer produces the "Not a HASH" and "Use of uninitialized value during global destruction" warnings. The first warning caused problems when using SpreadScript with the Apache module mod_perl.
© 1999-2013 GreyTrout Software, Inc. All Rights Reserved