c03833de40
fpspreadsheet: Add some more formulas
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3511 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-09-01 22:37:14 +00:00
56b814ec17
fpspreadsheet: Implement writing and reading of ods formulas. Some issues with date/time formulas.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3510 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-09-01 13:21:39 +00:00
c87afdcdec
fpspreadsheet: Redo handling for formulas:
...
- Allow processing of string formulas (conversion to/from rpn formulas, calculation).
- Drop cell ContentType cctRPNFormula.
- Drop field RPNFormulaValue of TCell record.
- Remove all fekXXXX declarations for sheet functions. Function is specified by name now.
- Complete registration mechanism for user-defined formulas.
Adapt all demos
Test cases working
This commit does not yet support: shared formulas, formulas in ods.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3506 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-08-30 18:03:22 +00:00
a043b77519
fpspreadsheet: Remove workbook property ReadFormulas, use option boReadFormulas instead. Update all demos affected. Modify most demos to no longer require the fps package.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3505 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-08-29 15:32:43 +00:00
495499a9e2
fpspreadsheet: Make sure that Excel's system colors are kept when colors are added to a palette. Fix BIFF 2 font color mismatch in unit test. All green again.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3471 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-08-11 22:39:47 +00:00
eaabdf67c1
fpspreadsheet: Make sure that biff writers do not write colors exceeding the maximum palette count. Add casse to error tests (passed, but the biff2 font color test fails now...)
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3470 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-08-11 15:53:06 +00:00
ad1ae69544
fpspreadsheet: Log warning if BIFF writer tries to write more than 64 colors. More clean-up.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3468 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-08-11 11:16:43 +00:00
dd08f3e7c1
fpspreadsheet: Fix ODS writing incorrect blank cells. Add blank cells to emptycelltests.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3461 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-08-09 13:39:15 +00:00
83db4e3fc4
fpspreadsheet: Add proper ifdefs around "uses clocale" in fpspreadsheet.pas
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3458 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-08-08 21:18:16 +00:00
a0a19eb380
fpspreadsheet: Write OOXML string formulas. Write biff2 dimension record.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3456 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-08-08 19:00:27 +00:00
8f666bec13
fpspreadsheet: Fix written oversized worksheets being defective, adapt BIFF writer's WriteDimensions method to be compatible with oversized worksheets.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3455 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-08-08 14:30:19 +00:00
0029891176
fpspreadsheet: Fix ODS writer beginning to write rows/columns at first used row/column instead of 0. ODS error message test active now. Separate errortests and virtualmodetests from internaltests. All tests passed (Win32, Laz trunk, fpc 2.6.4).
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3449 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-08-08 09:02:37 +00:00
ff059e3420
fpspreadsheet: Move log list from reader/writer to workbook for easier access. Add unit test for error logging (in internaltests). Improve OOXML writer to begin writing rows only from the first existing row, not from 0. (The ODS writer still does this, therefore, it creates a huge file for the error logging test - this test is currently deactivated for ods).
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3446 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-08-07 22:24:22 +00:00
c0dbb07201
fpspreadsheet: Implementing reading of xlsx theme colors which are found in many xlsx files. Not quite correct yet.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3440 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-08-06 15:49:04 +00:00
7e599ebd07
fpspreadsheet: Fix arithmetic overflow in ooxml writer in case of empty worksheet but existing row records. Use try-finally blocks around test cases to make sure that memory is released and temp file is deleted in case of exceptions due to failed tests. Fix memory leak in rpn formula calculation (spreadtestgui, however, still reports a lot of memory leaks).
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3431 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-08-05 21:42:34 +00:00
fe4b0ab8db
fpspreadsheet: Add number, string and date/time tests for xlsx reading.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3425 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-08-05 08:25:17 +00:00
de5e05ec86
fpspreadsheet: Clean-up of demos (sometimes the default built mode was lost). Add some more overloaded methods to TsWorksheet having the cell as an argument instead of row/col index.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3411 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-08-02 22:31:19 +00:00
8c687533cf
fpspreadsheet: Support reading of font from xlsx files. Add unit tests, 3 fails related to font color.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3387 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-27 22:44:17 +00:00
565df8a3e3
fpspreadsheet: Add test cases for xlsx number and date/time formats. Two fails.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3384 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-26 21:52:59 +00:00
5a65855a48
fpspreadsheet: Implement virtual reading mode for biff8 and biff5 (activated by workbook option boVirtualMode when reading). Add demo_virtualmode_read. Update speed test (factor 2 faster than standard mode, main advantage: no significant memory usage)
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3372 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-24 11:51:34 +00:00
a7c7810ac5
fpspreadsheet: Fix crash of rpn formulas introduced by last commit
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3353 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-20 18:28:40 +00:00
03b690d834
fpspreadsheet: Fix floating point formula tests cases to give matching results even without tolerance value. Fix BIFFExplorer to show all digits of floating point cell values.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3343 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-19 23:14:53 +00:00
42f55e22d7
fpspreadsheet: tests: get empty temp file just before wrtiing out. Coding style: do begin matches initial style+FPC coding style.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3336 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-19 13:13:56 +00:00
18ae11e3e8
fpspreadsheet: Relax error margin for date/time tests to 10 nsec in order to get success in tests back.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3335 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-19 10:45:17 +00:00
ed197af6c1
fpspreadsheet: Add another set of unit tests for virtual mode, now with SaveMemory options.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3326 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-15 21:31:59 +00:00
7db78ca670
fpspreadsheet: Add first unit test cases for virtual mode (all biff, ooxml /writing only)
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3323 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-15 15:49:58 +00:00
ddd6902edf
fpspreadsheet: Significantly improve speed of the ooxml writer, by rvk (see discussion in http://forum.lazarus.freepascal.org/index.php/topic,25110.0.html )
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3305 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-10 15:55:40 +00:00
7e22f0e6ad
fpspreadsheet: Complete rpn calculations (COUNTA). Remaining missing function probably will not be implemented because calculation is beyond units (math, strutils, dateutils; if needed they can still be implemented at application level by registering the corresponding function).
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3296 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-07 21:29:00 +00:00
4967d9a233
fpspreadsheet: Calculate the formula SUMIF.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3281 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-04 20:41:07 +00:00
5718a5c120
fpspreadsheet: Some more extreme test cases for column name bug ( #26447 )
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3278 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-04 09:17:31 +00:00
fb2b3159ea
fpspreadsheet:
...
- test for bug 26447: fpspreadsheet columns >26 wrong with ooxml (patch) as fixed in r3273
- fix typo in documentation rfRow=>rfRelRow
- cosmetic changes
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3276 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-04 08:48:12 +00:00
2f338a50a8
fpspreadsheet: Beginning to add cells to calculation of rpn formulas.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3267 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-02 15:14:58 +00:00
c82e915262
fpspreadsheet: Fix remaining utf8 issues when reading/writing rpn string formulas. Fix BIFFExplorer issues when displaying biff2 formulas. Excel complains about data loss when reading a biff2 file containing a calculated formula having a string result - not fixed yet.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3266 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-02 11:51:59 +00:00
9dc234ae22
fpspreadsheet: Unified writing code for rpn formulas. Calculation results of rpn formulas are now stored correctly for all biff versions.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3265 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-01 22:47:10 +00:00
0aaff39316
fpspreadsheet: Implement calculation of rnp date/time and info formulas. Partial implementation of SUBSTITUTE calculation is back. Add corresponding unit tests, passed.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3262 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-01 12:55:02 +00:00
734c816bd1
fpspreadsheet: (Almost) complete calculation of built-in rpn string function of fpspreadsheet (PROPER and SUBSTITUTE missing)
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3257 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-06-30 22:30:23 +00:00
c2a5a2dd5d
fpspreadsheet: Implement fpn formula calculation of all math functions available in fps. Test cases passed.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3255 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-06-30 13:21:04 +00:00
cd9e686804
fpspreadsheet: More calculation of rpn formulas, add TestCalcRPNFormulas cases to formulatests. Boolean results not working yet. And implementation only for BIFF8, so far.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3249 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-06-28 19:40:28 +00:00
13a9fb2603
fpspreadsheet: Remove built-in number formats nfSci (not suppored by ods and fpc) and nfAccounting/nfAccountingRed (too much display-oriented, too cumbersome to implement for reading and displaying in the grid). If needed in Excel they can still be written using nfCustom. Update all files and tests for these now no longer existing formats.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3222 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-06-23 09:15:56 +00:00
d75755c1ff
fpspreadsheet: Read frozen panes from ods files. Add test case for writing/reading of ods panes, passed.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3210 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-06-21 16:09:08 +00:00
a85adcb61a
fpspreadsheet: Reducing hints and warnings, still a lot...
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3203 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-06-19 19:25:40 +00:00
a4ee00f870
fpspreadsheet: Major reconstruction of numberformat parser to facilitate creation of xml formats for ods. Some minor regressions in unit tests and fpsgrid demo to be fixed. Removed elements "Decimals" and "CurrencySymbol" from TCell (this information is taken from the format string now). Removed the built-in format nfFmtDateTime (makes life easier, use nfCustom instead).
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3156 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-06-12 22:20:45 +00:00
f9663739db
fpspreadsheet: Add test case for empty cells for all biff and ods. All passed.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3124 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-06-01 22:11:31 +00:00
08d7ed126e
fpspreadsheet: Add unit test for reading rpn formulas
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3093 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-05-24 20:28:05 +00:00
cb9d07d0dd
fpspreadsheet: Initial implementation of a number format parser. Not complete yet.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3061 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-05-19 22:26:42 +00:00
f0928db9f5
fpspreadsheet: Row heights now can be saved to all biff versions. Add unit test case for row heights, ok. Bug fixed in BIFFExplorer with format detection.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3019 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-05-07 18:31:27 +00:00
256d7b1fbd
fpspreadsheet: Configure spreadtestgui to compile into lib folder.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3007 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-05-04 19:36:25 +00:00
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
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
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