Todd
a6ae585a35
spreadsheet: record inf/nan as errors
...
As you can't directly enter NaN/Inf in Excel, there's
no great way to verify behavior. This just ensures
that setting NaN/Inf from Go will result in a #NUM!
error in Excel.
2017-09-21 21:14:25 -04:00
Todd
00be1d037c
formula: support evaluating array formulas
...
Array formulas are entered in Excel by pressing
Ctrl+Shift+Enter to finish the formula. The resulting
formula is entirely in one cell, but its computed results
expand into cells the size of the array result.
2017-09-21 20:20:06 -04:00
Todd
c4c9138da2
formula: add more index functions
...
- HLOOKUP
- LOOKUP
- TRANSPOSE
- VLOOKUP
2017-09-21 19:31:28 -04:00
Todd
f915bf1a9b
formula: support for more statistical functions
...
- AVERAGE
- AVERAGEA
- COUNT
- COUNTA
- COUNTBLANK
- MEDIAN
2017-09-20 20:47:03 -04:00
Todd
0e09e64818
formula: compatibility & bug fixes
...
- Make UNICODE with no arguments behave like Excel
- Fix OFFSET/INDEX for named ranges
2017-09-20 20:47:03 -04:00
Todd
e7da598399
spreadsheet: return empty values from sheet context
...
This is required as AVERAGE/AVERAGEA need to distinguish between
empty and non-empty cells.
2017-09-20 20:47:03 -04:00
Todd
b056033c12
format: add support for string formats
2017-09-20 15:15:13 -04:00
Todd
5f6ed3a319
spreadsheet: add unit tests for default number formats
2017-09-20 15:15:13 -04:00
Todd
6a8920a1c7
spreadsheet: fix number format 47
...
This appears to be a typo in the ECMA 376 document. Excel treats
it as "mm:ss.0" and not "mmss.0"
2017-09-20 15:15:13 -04:00
Todd
1992e3c519
format: support variable denominators in fraction formats
2017-09-20 15:15:13 -04:00
Todd
a8d038561c
spreadsheet: add support for protecting/unprotecting workbooks/sheets
2017-09-20 15:15:13 -04:00
Todd
20e8ecd685
format: add package doc
2017-09-19 19:45:41 -04:00
Todd
1103aa1edb
format: add support for fraction formatting
2017-09-19 16:35:11 -04:00
Todd
32bc9e3a50
format: fix vet errors with generated function
2017-09-18 22:30:08 -05:00
Todd
b30eaaae44
format: change debugging log.Fatal to log.Printf
2017-09-18 22:30:08 -05:00
Todd
b03eec358d
spreadsheet: add xlsx2csv demo
...
This demo program will extract either raw or formatted
values from a spreadsheet, creating one CSV file per
sheet.
2017-09-18 22:30:08 -05:00
Todd
49e34b1d90
formula: better support for thousands separator
2017-09-18 22:30:08 -05:00
Todd
d69cf90249
format: implement support for evaluating spreadsheet number formatting
...
This adds support for extracting a cell's formatted value according to
the number format applied to the cell. To do this we need to implement
a parser for Excel style format strings and support formatting numbers
according to that style.
This also enhances the General formatting to be much closer to what
Excel normally does. There are likely still a few corner cases where
Excel and gooxml differ, but hopefully not too many.
2017-09-18 22:30:08 -05:00
Todd
d9c4a27794
spreadsheet: start adding support for extracting formatted cell value
2017-09-18 22:30:08 -05:00
Todd
39028bcd7a
spreadsheet: add ability to recalculate formulas
...
If the formula executes without errors, it stores the
result as a cached value in the sheet.
2017-09-17 14:56:58 -05:00
Todd
b54a2efd19
formula: add method to determine the supported functions
2017-09-17 14:56:58 -05:00
Todd
422484af83
formula: add more complex function support
...
- INDEX
- INDIRECT
- OFFSET
2017-09-17 14:56:58 -05:00
Todd
92c902e6bd
formula: support for using named ranges/tables from formulas
2017-09-17 14:56:58 -05:00
Todd
a4a1562f7c
spreadsheet: add formula reading/writing support
...
Minimal support for now, just enough to read table
ranges so they can be used from formulas.
2017-09-17 14:56:58 -05:00
Todd
5ed34695bd
formula: add support for text functions
...
- CHAR
- CLEAN
- CODE
- CONCATENATE
- EXACT
- LEFT
- LEN
- LOWER
- PROPER
- REPT
- RIGHT
- T
- TRIM
- UNICHAR
- UNICODE
- UPPER
2017-09-17 09:23:37 -05:00
Todd
09419b822f
formula: trig functions
...
- ACOT
- ACOTH
- CEILING (legacy version)
- COT
- COTH
- CSC
- CSCH
- FLOOR (legacy version)
- SEC
- SECH
2017-09-16 21:12:41 -05:00
Todd
29e03fc7b7
formula: more math/trig functions
...
- SIGN
- SIN
- SINH
- SQRT
- SQRTPI
- SUM
- SUMPRODUCT
- SUMSQ
- TAN
- TANH
- TRUNC
2017-09-16 18:13:20 -05:00
Todd
e46a7165b4
formula: more implementations of math/trig functins
...
- MDETERM
- MOD
- MROUND
- MULTINOMIAL
- MUNIT
- ODD
- POWER
- PRODUCT
- QUOTIENT
- RADIANS
- RAND
- RANDBETWEEN
- ROMAN
- ROUND
- ROUNDDOWN
- ROUNDUP
- SERIESSUM
2017-09-16 16:52:14 -05:00
Todd
23e428e770
formula: return array instead of list for ranges
...
This will be required for functions that need to know
the structure of the input.
2017-09-16 16:52:14 -05:00
Todd
5a5c16b89a
formula: add initial support for cell arrays
...
This is a pretty uncommon feature from what I can tell
and is not fully supported. The example for the MDETERM
function uses an array though, so this will at least add
enough support for the examples to compute correctly.
2017-09-16 16:52:14 -05:00
Todd
fb43078e87
formula: add support for referencing other sheets
...
This adds support references like 'Sheet 1'! so that formulas
can pull values from other sheets.
2017-09-16 10:33:13 -05:00
Todd
e0786dae4a
formula: support for more math/trig formulas
...
- EVEN
- EXP
- FACT
- FACTDOUBLE
- FLOOR.MATH
- FLOOR.PRECISE
- GCD
- INT
- ISO.CEILING
- LCM
- LN
- LOG
- LOG10
2017-09-16 09:46:44 -05:00
Todd
199db803a0
spreadsheet: fix bug with column to index
2017-09-15 17:43:40 -05:00
Todd
9b89ae1f12
spreadsheet: add fast paths for appending rows/cells
2017-09-15 17:43:40 -05:00
Todd
382c157c11
formula: add more math formulas
...
- ABS
- ACOS
- ACOSH
- ARABIC
- ASIN
- ASINH
- ATAN
- ATANH
- ATAN2
- BASE
- CEILING.MATH
- CEILING.PRECISE
- COMBIN
- COMBINA
- COS
- COSH
- DECIMAL
- DEGREES
- PI
2017-09-15 17:43:40 -05:00
Todd
17a365ee93
spreadsheet: start adding support for formula evaluation
...
We can take advantage of cached formula results that Excel/LibreOffice
insert to ensure that our formula results match the expected results.
2017-09-14 22:17:42 -05:00
Todd
111567b74e
spreadsheet: default new cells to numeric with implicit zero value
2017-09-14 22:17:42 -05:00
Todd
1ff1b074f7
spreadsheet: add support for setting the active sheet
...
This is the tab that is initially selected when opening
a spreadsheet.
2017-09-12 16:32:16 -05:00
Todd
58b6c0700e
spreadsheet: allow multiple anchor types for charts
2017-09-11 20:17:06 -05:00
Todd
558e5ee274
spreadsheet: add image support and example
2017-09-11 20:17:06 -05:00
Todd
90e6416440
spreadsheet: add more fine control over anchoring
2017-09-11 20:17:06 -05:00
Todd
0791b4688b
spreadsheet: add freeze rows/columns support and example
2017-09-10 19:11:53 -05:00
Todd
9e6bfaf6e1
spreadsheet: add method to clear cached formula results
2017-09-10 17:28:36 -05:00
Todd
f3eca9e68e
spreadsheet: add support for data validation rules
2017-09-10 17:13:40 -05:00
Todd
db7145dcbb
spreadsheet: add helper function for applying a border to multiple cells
2017-09-10 16:13:11 -05:00
Todd
2312e6cdc8
spreadsheet: add initial cell border example
2017-09-10 16:13:11 -05:00
Todd
3bc4675cf6
spreadsheet: add comment support
...
This adds comment support for sheets. Excel requires a VML drawing with
the comment box shape for each comment to display the comment.
LibreOffice displays comments fine with or without the shape, and
creates the shape for its own comments. For the sake of compatibility,
we create comment shapes as well.
I know of no other use for the legacy VML support other than comment
boxes...
2017-09-10 11:25:29 -05:00
Todd
50c3c2c990
document/spreadsheet: updates for new schema
2017-09-10 10:33:53 -05:00
Todd
3d6b12368b
spreadsheet: add complex example
...
This has some conditional formatting, charts and auto filters.
2017-09-09 11:02:39 -05:00
Todd
ceb8570558
spreadsheet: add support for column formatting
2017-09-09 11:02:39 -05:00