Turning Tagged PDF on added 2.4 MB to the reporter's document, 2.0 MB of that its structure tree: 12562 elements, each its own top-level object, uncompressed, and each costing a further 20 bytes in the cross-reference table. The elements go into /Type/ObjStm streams of 200 now, with the parent and ID trees. The cross-reference has to become a /Type/XRef stream with them, because a table cannot address an object inside another object. PDF 1.5 introduced both, so a PDF/A-1b file keeps the plain form. So does an encrypted file, since a string in an object stream shall not be separately encrypted, and this writer encrypts strings as it builds the object. So does a hybrid file, because sdext reads the embedded original document out of a trailer. The reporter's document exported 3157118 bytes tagged before the change and 1086230 after, against 769448 untagged either way. An 8300-row Writer table exported 4017140 bytes tagged before and 500967 after, against 73183 untagged. testTdf159066 and testTdf173162 grep the exported bytes for something the structure tree carries, /Alt< and the /Namespaces array. They inflate the object streams first now. testListLabelPDFExport counted its List element in the token stream, and asks GetObjects() for it. Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com> Change-Id: I1e27dc3a8f43aa8b6c75ae930615c8d4b4645627 Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/13209 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins CPCI <releng@collaboraoffice.com> (cherry picked from commit ad4bb8ae080aba98080dfaabd688dfdb48cf7ade) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211556 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
Spreadsheet Application Code
You can dump some information in a dbgutil build:
Shortcuts
CTRL+SHIFT+F12
Dumps the column width of the first 20 columns.
CTRL+SHIFT+F11
Dumps the graphic objects and their position and size in pixel.
CTRL+SHIFT+F6
Dumps the SfxItemSet representing the cell properties' of the current selection as a xml file. The file will be named dump.xml
The Cache Format
ScDocument::StoreTabToCache allows storing the content (not the formatting) of a table to a binary cache format.
The format is column orientated which allows quick serialization of the table.
-
Header:
- Number of Columns: 64 bit unsigned integer
-
Column:
- Column Index: 64 bit unsigned integer
- Column Size: 64 bit unsigned integer
- For each cell type block a new ColumnBlock
-
ColumnBlock:
- Start Row: 64 bit unsigned integer
- Block Size: 64 bit unsigned integer
- Type: 8 bit unsigned integer
- 0 : empty
- 1 : numeric
- for each cell: 64 bit IEEE 754 double precision value
- 2 : string
- for each cell: 32 bit signed string length followed by string length bytes of the string (UTF-8)
- 3 : formula
- for each cell: 32 bit signed string length followed by the formula in R1C1 notation as a string
Functions Supporting Wildcards or Regular Expressions
As this comes up every now and then, and rather should be documented in an extra list of the Help system, functions that support Wildcards or Regular Expressions and depend on the setting under Tools -> Options -> Calc -> Calculate are those that in ODF OpenFormula (ODFF) are defined to depend on the HOST-USE-REGULAR-EXPRESSIONS or HOST-USE-WILDCARDS properties, see ODF v1.3 part4 3.4 Host-Defined Behaviors https://docs.oasis-open.org/office/OpenDocument/v1.3/os/part4-formula/OpenDocument-v1.3-os-part4-formula.html#__RefHeading__1017868_715980110
- Array Functions
- CHOOSECOLS
- CHOOSEROWS
- DROP
- EXPAND
- HSTACK
- VSTACK
- TAKE
- TEXTSPLIT
- TOCOL
- TOROW
- WRAPCOLS
- WRAPROWS
- Database Functions
- DAVERAGE
- DCOUNT
- DCOUNTA
- DGET
- DMAX
- DMIN
- DPRODUCT
- DSTDEV
- DSTDEVP
- DSUM
- DVAR
- DVARP
- Information Functions
- COUNTIF
- COUNTIFS
- Lookup Functions
- HLOOKUP
- LOOKUP
- MATCH
- XMATCH
- VLOOKUP
- XLOOKUP
- FILTER
- SORT
- SORTBY
- UNIQUE
- Mathematical Functions
- RANDARRAY
- SEQUENCE
- SUMIF
- SUMIFS
- Statistical Functions
- AVERAGEIF
- AVERAGEIFS
- Text Functions
- SEARCH