SpreadScript 1.2.1 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!
- Need to manipulate or dynamically generate Excel spreadsheet files on Linux and Solaris?
- Need to perform complex spreadsheet calculations on data stored in a database?
- Tired of being restricted to providing users with CSV or TSV files when you really want formulas, formatting, and multiple sheets in a workbook?
- Want your Perl, Python, or Tcl scripts to have access to the power of hundreds of built-in formulas in a sophisticated spreadsheet?
SpreadScript provides the solution!
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.
Live Demo Web Applications
The following demo applications show some of the possibilities of using SpreadScript.
The Spreadsheet Web App is a CGI script written in Python that allows the user to create a spreadsheet using only HTML forms. The user is able to download the spreadsheet in Excel, NExS, and CSV formats. Note that only a small fraction of the code implements the spreadsheet functionality, with the rest handling all of the HTML and CGI duties.
The Stock Quote Data App is a CGI script written in Tcl. It dynamically generates native Microsoft Excel files using the data retrieved from a Yahoo Finance stock quote web page.
spread.sh- shell script wrapper to set the LD_LIBRARY_PATH to find the shared library and call the Python CGI script
spread.py- the Python CGI script that implements the web-based spreadsheet example application; spread.html is a colorized version of the source (the colorized version may be out of date)
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-2003 GreyTrout Software, Inc. All Rights Reserved