Commit Graph

1738 Commits

Author SHA1 Message Date
b8c1cf2961 fpspreadsheet: Add support for reading background colors in biff8 and fpspreadsheetgrid.
Add automatic test case for colors (fails since some colors are not yet written correctly, fails also for blank cells which are not yet read).

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2956 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-20 21:51:12 +00:00
be497cb19e fpspreadsheet: Add support for horizontal and vertical text alignment in cells for biff8 and fpspreadsheetgrid.
Fix failure to reckognize file format in case of uppercase filename.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2955 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-20 20:31:36 +00:00
313daa2eaf fpspreadsheet: Complete prepared read/write support for cell wordwrap in biff8 and fpspreadsheetgrid
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2954 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-20 16:07:53 +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
8c90f30c66 fpspreadsheet: Add reading of row heights for biff8.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2952 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-20 14:57:23 +00:00
d617abccca fpspreadsheet: Major re-write of fpspreadsheetgrid:
- persistent storage of workbook
- inherits from TCustomDrawGrid instead of from TCustomStringGrid
- use FixedRow/Col for row/column headers 
- displays cell borders as read from the file
- uses column widths as read from the file (approximate only)
- numbers are right-aligned by default.
- demo extended to display worksheets in tabs
- some visual improvements of demo
- saving not yet working in demo
More to follow...

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2951 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-19 19:29:13 +00:00
0f73aed718 fpspreadsheet: Implement reading of cell borders. Delete test.xls in examples/excel8demo.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2950 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-19 16:58:44 +00:00
41f72fef58 fpspreadsheet: Fix some range-overflows in BIFFExplorer
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2949 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-18 17:05:04 +00:00
36cc7d1f4e fpspreadsheet: Add support for reading/writing of column widths in biff8 (specified as multiples of the width of the character "0"). Add test case. No regressions
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2945 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-18 13:17:22 +00:00
8b688de40b fpspreadsheet: Fix crash when destroying columns and rows.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2942 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-17 20:59:00 +00:00
89942f1bd3 fpspreadsheet: Fix memory leak (ignored format string and dyn formula array when freeing cells)
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2941 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-17 20:13:38 +00:00
1f84822607 fpspreadsheet / BiffExplorer: Add info on records COLINFO, COLWIDTH, NOTE, OBJ; some cosmetics in MainForm.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2940 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-17 17:36:43 +00:00
afcb50a0be Cosmetic: document fekOpSUM cannot be used for ranges
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2939 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-17 12:25:40 +00:00
32f6b81a6d fpspreadsheet: Add BiffExplorer, a testing and debugging tool for xls files, to folder "reference"
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2938 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-13 10:58:41 +00:00
f32fa5b568 * Tests: clarify background color test only applies to BIFF8 XLS
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2935 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-09 10:49:05 +00:00
38f1612dbf * Fix inadvertent change BIFF8=>BIFF5 tests
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2934 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-08 10:27:50 +00:00
617ba13515 * Tests: fix not writing testmanual.xls
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2933 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-08 10:26:21 +00:00
435cc15729 * Replace XLSDEBUG define for writeln debug output to FPSPREADDEBUG as it is used beyond just xls support.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2932 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-08 09:53:02 +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
b7eb5352c0 * Tests updated to work with current code (i.e. no new RPN support yet).
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2930 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-08 09:33:13 +00:00
d8c10d8668 * Tests part of patch referenced issue 25718 (actual patch on forum) for RPN formulas. Thanks wp.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2929 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-07 16:42:19 +00:00
f95e48563a * OpenDocument .ods: tweaked support for reading time only fields introduced in r2908: fixes for 1899/1900/1904 date mode. Still needs more tweaks for 1904 date mode (and presumably 1900 as well)
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2924 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-03-26 10:26:43 +00:00
3bbc720e3c * Tests: avoid test errors for unimplemented custom format ODF cells
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2919 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-03-25 15:46:05 +00:00
78ec763d6a * Forgot some files
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2918 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-03-25 15:45:10 +00:00
8faeace234 Cosmetic: better test reporting database
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2917 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-03-25 14:44:04 +00:00
cc13dd5c5f OpenDocument .ods:
* ignore invalid times



git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2915 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-03-24 07:34:00 +00:00
12a4c4c07b * LibreOffice/ODS format: fix time-only calculations exceeding EncodeDate limits
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2909 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-03-23 13:06:19 +00:00
b70f1be9c3 + OpenDocument .ods: initial support for reading time only fields. To do: needs additional support for 1900/1904 date mode.
+ OpenDocument: naive speed improvement for reading repeated rows/columns.



git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2908 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-03-23 11:36:36 +00:00
52b97c050d + Tests: add support for LibreOffice/OpenOffice .ods spreadsheets
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2907 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-03-23 11:34:37 +00:00
400bf62aba * OpenDocument/OpenOffice/LibreOffice date/time read fix; code adapted from curtisnewton, thanks a lot! Fixes mantis issue #25585
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2890 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-01-24 10:32:23 +00:00
c3161bff2b Explicitly specify test source file codepage as UTF8. Only works on FPC trunk. Tested on FPC trunk and FPC 2.6.2 x86, Windows.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2880 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-01-08 15:41:43 +00:00
f76acb185e * Correction for r2871: less ugly, more efficient code.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2873 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2013-12-28 16:01:15 +00:00
0368dda4a8 + Expanded fpsgrid example to be able to load/save first sheet of spreadsheet files.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2872 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2013-12-28 15:29:22 +00:00
9351660d56 * Correct color output for background colors, see thread
http://forum.lazarus.freepascal.org/index.php/topic,19887.0.html
  and testmanual.xls from test suite.

  To do: needs verification on big-endian systems.
  To do: scWheat etc (the colors after grayx%) still don't work.



git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2871 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2013-12-27 18:01:59 +00:00
86a42c6c02 * Tests: cosmetic/slight tightening file exist test
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2870 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2013-12-27 13:55:56 +00:00
449252cbe6 * tests: test WriteToFile AOverwriteExisting, hopefully catches error reported in
http://forum.lazarus.freepascal.org/index.php/topic,23051.msg137012.html#msg137012



git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2869 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2013-12-27 09:32:10 +00:00
75b5c4188f * Test suite: fix r2863 invalid sheet name (at least when opening with Excel) for formatted text test.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2868 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2013-12-23 13:39:30 +00:00
018f05324b + Initial write date/time cell support for opendocument/OpenOffice/Libreoffice
To do: adjust test suite for .ods files



git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2867 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2013-12-23 13:35:36 +00:00
93206c37ca * Cosmetic/comments
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2866 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2013-12-23 13:16:32 +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
f7dfeba208 * Excel8write.lpr demo compile fix for r2863 by wp
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2864 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2013-12-22 18:09:55 +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
f1c9fb3597 * TsWorksheet.ReadAsUTF8Text: readasdate also reads time values unless sure cell is date-only. Thanks wp for the suggestions!
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2861 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2013-12-10 12:23:02 +00:00
da12b16bb5 * tests: fix testsutility.pas file type.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2860 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2013-12-10 12:10:28 +00:00
a98a75327e Tests:
+ added test for GetSheetByName function
+ Added TSpreadInternalTests.ReadDateAsUTF8 to test wp's ReadAsUTF8 forum problem report with date/time cells
* Fixed displaying sheet+column where problems occur (CellNotation function)



git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2859 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2013-12-10 12:06:12 +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
2172ae9c6e fpspreadsheet: Minor bug fix from forum http:\/\/forum.lazarus.freepascal.org\/index.php\/topic,22667.0.html
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2844 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2013-11-21 16:13:02 +00:00
fa1ffd579f NaN (Not A Number) values now are read as '' (nothing) instead as "NaN".
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2760 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2013-07-03 00:01:48 +00:00
30bcff1574 Removed uneeded test code.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2759 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2013-07-02 23:59:57 +00:00
3517fb8a2c Fixed missing assignment of "DIF first sector", now xls files can be bigger than 7 megabytes.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2758 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2013-07-02 23:27:25 +00:00