11772b0156
fpspreadsheet: Fix ooxml reader crashing for files having no shared strings table.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3379 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-25 16:46:39 +00:00
005434006f
fpspreadsheet: Split shared code for ooxml and ods readers off into new unit fpsxmlcommon.pas
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3378 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-25 16:31:34 +00:00
8d4572c39d
fpspreadsheet: Initial implementation of an OOXML reader (some files still crashing). Add ooxmlread demo to examples folder. Fix spready demo's incorrect *.xlsx file filter.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3374 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-24 22:22:26 +00:00
7f8e8fb312
fpspreadsheet: Rename virtual mode event handler OnNeedCellData to OnWriteCellData. Add another virtual mode event handler for reading, OnReadCellData.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3370 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-23 21:51:06 +00:00
064dd6aba2
fpspreadsheet: Extend TBufStream for reading. Rename workbook's WritingOptions to Options, and the option flags from woXXXX to boXXXX. Use boBufStream (former woBufStream) to activate TBufStream for reading of xls and ods. Speed up reading of biff2 by factor 3 (rel to commit before prev one). Fix pile-up of temporary files when saving ods.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3357 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-22 15:59:29 +00:00
ba37ace85f
fpspreadsheet: Read entire biff record of label and number cells to speed up reading (30% improvement for biff2). Numerous clean-up, mostly debugger settings.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3355 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-21 20:33:25 +00:00
7a3a9060e9
fpspreadsheet: Fix memory leak in virtual mode due to incorrectly initialized strings in the cell record.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3352 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-20 18:19:43 +00:00
08987b52c8
fpspreadsheet: Use TBufStream as general-purpose stream if woBufStream is set in Worksheet.WritingOptions. woBufStream replaces woSaveMemory. Results in a significant speed enhancement for biff2 (64000x100 cells -> 31 sec without, 1.7 sec with woBufStream).
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3337 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-19 13:23:12 +00:00
7f6277ca08
fpspreadsheet: Add unit fpsstreams containing a buffered stream for speed-up of writing in virtual mode.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3331 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-18 22:48:38 +00:00
4c723b9fc3
fpspreadsheet: Convert some more biff methods such records are written in a single block (biff2: WriteLabel, WriteNumber, all: WriteFormat, WriteBlank, WriteColInfo).
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3325 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-15 21:00:49 +00:00
6d4175c72a
fpspreadsheet: Writing of date/time values to xlsx files. Date/time formats working.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3322 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-15 15:16:46 +00:00
e3c0eb2dc0
fpspreadsheet: Write custom row heights and column widths to xlsx files. Works in virtual mode also.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3320 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-15 13:31:45 +00:00
3f292f5e99
fpspreadsheet: Writing of number formats for xlsx (date/time not working yet)
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3318 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-14 20:47:53 +00:00
9607fc8e88
fpspreadsheet: Extend the event OnNeedCellData by a template cell which can be used for formatting when saving a file in virtual mode.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3317 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-14 15:04:04 +00:00
dc1d5d038a
fpspreadsheet: Add wordwrap to writing of xlsx. Fix some minor issues forgotten with xlsx border and background color.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3316 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-14 07:58:45 +00:00
f596a181b3
fpspreadsheet: Support for writing cell border (on/off, linestyle, color) and background color to xlsx files.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3315 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-13 22:09:27 +00:00
3d7c3d06e3
fpspreadsheet: Implement writing of vertical and horizontal text alignment for xlsx files.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3314 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-13 15:23:07 +00:00
89ffb05a1c
fpspreadsheet: Implement writing of text rotation for xlsx files
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3313 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-13 14:58:12 +00:00
9d2d62542b
fpspreadsheet: Implement font support for the OOXML writer (font type, size, style, color).
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3312 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-12 22:12:38 +00:00
36658107bc
fpspreadsheet: Fix regression in previous commit (usage of nil in WriteCellCallback). Write font list to styles.xml.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3310 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-11 22:43:00 +00:00
e6e961d51f
fpspreadsheet: Add WriteBlank to TsSpreadOOXMLWriter to standardize code.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3309 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-11 20:00:49 +00:00
4143334384
fpspreadsheet: Fix spans typo in xlsxooxml.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3308 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-11 19:36:17 +00:00
231b127041
fpspreadsheet: Implement virtual mode for all biff file formats. Add record limitations with writer-specific max row and col counts: a file is not written to a particular file format if it exceeds the limitations of the file format.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3307 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-11 13:20:14 +00:00
e2391c142b
fpsreadsheet: Introduce "virtual writing mode" where the writer does not get its data from the spreadsheet, but from an event ("OnNeedCellData"). Introduce stream switching for xlsxooxml. Both feature allow to write HUGE spreadsheet files. Add example "test_virtualmode".
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3306 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-10 20:43:46 +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
1979ed4e77
fpspreadsheet: document reason for r3299
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3301 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-08 22:02:13 +00:00
d1ef94451a
fpspreadsheet: Fix invalid xml characters issue in writing xlsx files (see http://forum.lazarus.freepascal.org/index.php/topic,25110.msg152030.html#msg152030 ).
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3300 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-08 20:52:59 +00:00
a884bedf92
fpspreadsheet: Fix zip/xml path delimiter issue for ooxml making fps-written xlsx files unreadable by Libre/OpenOffice (see //forum.lazarus.freepascal.org/index.php/topic,25110.0.html)
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3299 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-08 19:03:58 +00:00
9fb1a96f20
fpspreadsheet: Fix bug #026451 ("Wrong {$IFDEF} in xlsxooxml.pas and fpsopendocument.pas")
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3284 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-07-05 18:11:41 +00:00
d0927d2d03
fpspreadsheet: Further reduction of hints and warnings
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3206 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-06-20 15:58:22 +00:00
d29219fc68
fpspreadsheet: Mark TsSpreadsheet.GetLastColNumber/GetLastRowNumber as deprecated, use GetLastColIndex/GetlastRowIndex instead.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3101 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-05-26 15:27:35 +00:00
00ed56d1ef
fpspreadsheet: Integrate number format parser into fpspreadsheet. Some regressions in format detection...
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3068 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-05-20 16:13:48 +00:00
dae7caff9c
fpspreadsheet: Improved format detection when reading biff files. Unit test without errors due to biff now again. Fix compilation error of other formats due to new NumFormatList.
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3048 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2014-05-15 12:53:56 +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
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
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
29823d09b4
Patch from wp for fixing multiple sheet support in XLSX
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2412 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2012-04-29 15:22:53 +00:00
0ee4ede6b0
fpspreadsheet: Fixes using always point for numbers in OOXML and adds a solution to initialize the format settings in the constructor of the writer
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2410 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2012-04-27 08:01:15 +00:00
d887861a83
fpspreadsheet: Adds bold support to ooxml
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1883 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2011-09-01 07:55:12 +00:00
20c57c5180
fpspreadsheet: Updates the zipper code
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1868 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2011-08-29 15:10:10 +00:00
9f27990b0a
fpspreadsheet: Fixes remaining ooxml issues, now it actually works
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1867 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2011-08-29 15:06:41 +00:00
02caee546b
fpspreadsheet: Now OpenOffice can open the generated ooxml
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1866 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2011-08-29 14:57:29 +00:00
feb164c7c0
fpspreadsheet: Some more ooxml fixes
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1865 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2011-08-29 13:40:10 +00:00
36bcb9079b
fpspreadsheet: Some more ooxml fixes
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1864 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2011-08-29 13:24:16 +00:00
054f1bacde
fpspreadsheet: Some more ooxml fixes
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1863 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2011-08-29 13:01:53 +00:00
54e28dd0db
Implements the possibility to save a TZipper to a TStream and uses that
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1862 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2011-08-29 11:59:47 +00:00
4dafa5ce8d
fpspreadsheet: Attempt to implement basic OOXML support
...
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1861 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2011-08-29 10:55:22 +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