Commit Graph

150 Commits

Author SHA1 Message Date
cb00cea75a fpspreadsheet: Rearrange code in xls* units to inherit TsSpreadBIFF2Reader from TsSpreadBIFFReader (instead of TsCustomSpreadReader) and to reduce duplicated code
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2985 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-05-01 21:47:41 +00:00
70f1d5c5e8 fpspreadsheet: Implement number/datetime format support for BIFF5 reading/writing (like BIFF8)
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2979 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-30 21:07:41 +00:00
5e1e29aef8 fpspreadsheet: Show rotated text in fpspreadsheetgrid.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2976 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-29 21:58:48 +00:00
34db575967 fpspreadsheet: Implement text rotation for BIFF5. Add text rotation test cases for BIIF5 and BIFF8 (no text rotation in BIFF2 by design). Pass.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2974 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-27 15:59:16 +00:00
7c2851cd98 fpspreadsheet: Add most of the BIFF8 features to BIFF5. Add test cases for BIFF5 --> pass. Move more shared code from xlsbiff5 and xlsbiff8 to xlscommon. Update wiki.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2971 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-25 22:15:26 +00:00
c174566e55 fpspreadsheet: Some refinements with color handling:
- Add some more colors to the default palette, remove the duplicate base colors
- Introduce type TsColorvalue for the rgb color values
- At init, automatically convert big-endian color values to little-endian
- Add TsWorkbook.SetColorValue to replace a palette color
- Add testing of random palette to colortests
- Add color test for BIFF2 (font only, because background color cannot be changed by design)

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2962 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-24 21:27:57 +00:00
f69a47c902 fpspreadsheet: Add/complete color support for biff2 and biff8, reading and writing. Display colors in fpspreadsheetgrid.
Remove parameter AData in several methods of the readers/writers and replace it by FWorkbook passed at creation.
Add unit tests for font and color support. No issues.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2960 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-23 22:29:32 +00:00
f7f1b0f12a fpspreadsheet: Add support for empty cells to all BIFF formats (needed for formatting of empty cells).
Fix painting error of cell borders in fpspreadsheetgrid.
Add/complete reading/writing support for horizontal alignment, cell background and cell borders to BIFF2.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2958 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-21 21:43:43 +00:00
4f85834153 fpspreadsheet: Restructure reader/writer declarations to have in "public" only methods needed by the application
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2957 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-21 11:30:22 +00:00
f1fcd9f1f8 fpspreadsheet: Add reading support of row heights for biff2 and biff5
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2953 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-20 15:10:41 +00:00
27498ff548 + Add support for more/easier RPN formulas in XLS
- Allow relative cell references in RPN formulas
- Simplify generation of RPN formulas by using nested function calls
- Add writing of cell ranges for formulas in BIFF2/BIFF5
- Simplification of code e.g. by replacing the huge case instruction in TsSpreadBiffWriter.FormulaElementKindToExcelTokenID by a look-up table.
Fixes mantis issue #25718; patch by wp; thanks a lot!



git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2931 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-08 09:48:30 +00:00
6a4ff4c1c2 * Correction to r2863: use ISO 8601 format for WriteDateTime text output (currently every format except BIFF8 xls).
Ensures resulting files are interoperable regardless of OS locale settings, conforming to date/time cell support in BIFF8.



git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2865 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2013-12-23 12:11:20 +00:00
7f7d07f151 + Add support for text/number/date formats in BIFF8/xls.
+ Add support for writing out date/time to non-BIFF8 xls (though as text only for now)
  Slightly modified patch by wp, thanks a lot. 
  See
  http://forum.lazarus.freepascal.org/index.php/topic,22940.msg136761.html#msg136761

Still to do: add test cases for invalid format strings



git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2863 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2013-12-22 14:02:04 +00:00
abd8d0bea8 + Add date/time/datetime read/write support for BIFF8 xls format. No plans for earlier formats though the code could be adapted
+ XLS BIFF8: added DATE and TIME worksheet functions to RPN formula
* Allow writing formulas,numbers etc using cardinals increasing row/column limits for formats that support it.
* Add checks for text cell size limits when writing xls, xml. If exceeded, cell text will be truncated (better than corrupting the xls file - e.g. try to open it with Excel 2002 - as happens now with xls format)
* Formats that use fpspreadsheet zip have extra checks to prevent crashes for invalid zip dates
+ Use FPC built-in zip format when using FPC 2.7.1+ as it has fixes/improvements (e.g. zip64 support)
+ Added FPCUnit test suite to test reading and reading writing files. For now uses BIFF8 xls; contributions for other formats and more tests welcome. See the tests subdirectory.
+ Add link to msodumper tool for reference/debugging/troubleshooting .xls output

Fixes Mantis bugtracker issue #25388



git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2857 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2013-12-07 13:42:22 +00:00
af3ee31a25 fpspreadsheet: Adds support to writing the formatting of formula and number cells in XLS
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2671 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2013-02-12 11:29:19 +00:00
a8d77986c0 fpspreadsheet: Small rework of the codepage code into xlscommon
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2199 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2011-12-25 09:03:20 +00:00
442c19fe0a Removes fpsconvencoding in favor of lconvencoding
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2195 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2011-12-24 23:42:08 +00:00
3ac6ba3567 fpspreadsheet: Activates the new OLE for BIFF5, fixes bug 19867
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1778 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2011-08-02 09:20:07 +00:00
e23fbc9f1d FPSpreadsheet: Improves the comments
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1658 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2011-05-30 07:03:56 +00:00
948839a79a Reworks the common xls files and attempt to fix bug 18886 excel5 files are truncated when imported
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1654 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2011-05-29 17:21:51 +00:00
979180ddd9 Adds bold style support to OpenDocument
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1400 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2010-12-08 10:24:15 +00:00
1389a835d1 Adds excel 8 writting example and starts implementing formatting
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1264 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2010-07-30 06:44:53 +00:00
06ae369ff5 Improves FPSpreadsheet examples and improves the Grid component
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1229 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2010-05-25 09:11:02 +00:00
519e75d5a6 fpspreadsheet: Implements support to setting if existing files should be overwritten or not
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@993 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-11-08 19:21:23 +00:00
efbc5a8d2c Read excel formula and stores the precalculated value as a cell fixed value. Only numeric values, strings are not supported my fpspreadsheet at least by now.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@954 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-09-04 22:18:43 +00:00
c9cad114e8 Applied patch from Torsten Bonde Christiansen ( http://bugs.freepascal.org/view.php?id=14480 ) with some minor changes. Big speedup reading spreadsheets.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@952 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-09-02 22:03:01 +00:00
72d201621f fpspreadsheet: small improvements
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@932 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-08-12 13:08:44 +00:00
e25295e088 fpspreadsheet: Fixes encoding conversions for Excel 2 and 5 formats.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@930 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-08-12 12:46:33 +00:00
e7fede2029 git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@928 8e941d3f-bd1b-0410-a28a-d453659cc2b4 2009-08-11 15:28:08 +00:00
f3259be492 fpspreadsheet: improves Excel 5 RPN formulas, add ABS and ROUND functions
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@833 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-06-09 21:34:58 +00:00
bb04dbc318 fpspreadsheet: starts implementing formulas. RPN version working for Excel 5
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@832 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-06-09 11:19:10 +00:00
287270c308 Fixed floating point calculation for RKValue.
Fixed write label > 255 chars (not possible, truncate string).

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@828 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-06-06 15:04:42 +00:00
7baab9820c Added RSTRING, RK Value and MULRK excel tags.
Started integration of BIFF classes using a common ancestor.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@819 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-06-02 18:30:22 +00:00
90d327e0ee Patch from Joshy, small fix for OLE
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@810 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-05-26 18:32:09 +00:00
e14f7af87a fpspreadsheet, fixed compilation
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@798 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-05-13 02:54:26 +00:00
0cae800f3e xlsbiff8 reader declared. It works.
xlsbiff5 and xlsbiff8 must be descendants of a general biff class as many unsupported tags are common for both formats, some of them even common with biff2.
Added a list of unsupported tags to xlsbiff5 (IFDEFed) to easilly catch tags that must be supported like RK and MULRK which prevent it for load completly many xls files. xlsbiff8 must support them also.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@795 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-05-10 17:59:25 +00:00
181a1e0a98 New implementation to read and write OLE documents (Excel BIFF 5 & 8).
Now BIFF 5 & 8 should be possible to be generated in non Windows environment but this fact has not been tested.
To use the older mode replace uses "fpolebasic" by "fpolestorage".
Extensive tests are needed.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@792 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-05-09 15:41:38 +00:00
119b9f0bd4 Patch from Joshy, implements initial biff 8 support
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@782 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-04-21 15:08:43 +00:00
0ef4baae5a Small fix for bug in excel string write
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@779 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-04-18 12:31:46 +00:00
c064101224 Adds epiktimer
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@697 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-02-05 10:21:42 +00:00
933d8a5b44 fpspreadsheet: Improves OpenDocument support
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@692 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-02-02 09:58:51 +00:00
7e67d5e83e fpspreadsheet: Improves OpenDocument support and moved back to 0-based grid
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@688 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-01-29 13:24:37 +00:00
f8cd84c9ee fpspreadsheet: Improves OpenDocument support and rows/cols are now 1-based
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@686 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-01-29 11:30:38 +00:00
8d4562d0ef Adds unicode support in fpspreadsheet
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@683 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-01-28 17:18:04 +00:00
63fc6d8da1 fpspreadsheet: Improves reading excel 5 files
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@658 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-01-11 11:11:54 +00:00
1d2b67596d fpspreadsheet: Initial excel5 reader support.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@657 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-01-10 22:58:00 +00:00
111b3f819c fpspreadsheet: Cross-platform OLE code now works for most spreadsheets
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@653 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-01-07 10:50:16 +00:00
99057104e2 fpspreadsheet: Improved OLE storage code
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@651 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-01-06 19:35:08 +00:00
a52fbe2039 Improved ole storage and adds reference documents
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@650 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2009-01-05 14:43:39 +00:00
4f04afdb1c Initial commit of fpspreadsheet.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@362 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2008-02-24 13:18:34 +00:00