Commit Graph

183 Commits

Author SHA1 Message Date
3e6fce3a29 fpspreadsheet: Add unit test cases for pane support and showing/hiding of grid lines and sheet headers (write/read of BIFF5 and BIFF8). Passed.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3006 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-05-04 19:08:17 +00:00
482eac242a fpspreadsheet: Add support for frozen panes in BIFF5/BIFF8 (BIFF2 not working at the moment), fpSpreadsheetGrid, and BIFFExplorer.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3005 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-05-04 18:07:54 +00:00
e3446c2964 fpspreadsheet: improve auto row height behavior of fpspreadsheetGrid (remove property AutoRowHeights introduced a few revisions earlier, this is now determined from the value in the file).
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3003 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-05-03 20:12:44 +00:00
44c55efdbd fpspreadsheet: Add properties ShowGridLines, ShowHeaders, Selected to Worksheet to interface with fpSpreadsheetGrid. Read/write to xls file.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3002 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-05-03 19:07:55 +00:00
b93d9eae0c fpspreadsheet: Add linestyle and linecolor as attributes to cell borders. Works in BIFF8 and BIFF5 (BIFF2 does not support this). Add corresponding unit test cases -> passed.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2999 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-05-03 17:00:00 +00:00
d777029bec fpspreadsheet: Move writing of BLANK and NUMBER records from xlsbiff5 and xlsbiff8 to xlscommon. No regression.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2990 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-05-02 19:55:55 +00:00
3eac7b8066 fpspreadsheet: Move "AddDefaultFormats" to xlscommon. No regression.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2989 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-05-02 19:02:24 +00:00
1676d31702 fpspreadsheet: Add date/time reading/writing support to BIFF2 and the corresponding "write-read" unit test cases. Passed.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2988 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-05-02 18:49:05 +00:00
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
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
c61e4418b7 fpspreadsheet: Add reading and writing of font support to biff8, biff2, and fpspreadsheetgrid. Font colors in biff2 not yet working. No test cases yet.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2959 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-04-22 23:10: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
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
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
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
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
e70e659419 fpspreadsheet: Greatly improves the biff8 formula writing, now supports ABS and fixed =Cell+Cell
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2674 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2013-02-12 12:13:49 +00:00
60f89d3bfa fpspreadsheet: Minor improvement of encoding support
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2411 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2012-04-29 15:21:12 +00:00
09153c582d fpspreadsheet: Finishes the basic support for date reading
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2263 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2012-01-23 13:48:39 +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
f8caf9447a Starts improving the xls biff 8 codepage support, doesnt actually work yet
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2194 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2011-12-24 23:38:24 +00:00
c9280da776 FPSpreadsheet: Implements enough to write SUM(A1:A5) formulas in BIFF8
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1660 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2011-05-30 10:03:04 +00:00
f62592925f FPSpreadsheet: Adds some code for formula handling
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1659 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2011-05-30 09:22:08 +00:00
b4d8b8a10e fpspreadsheet: Fixes a bug in the last fix
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1655 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2011-05-29 17:33:46 +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
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