42 Commits

Author SHA1 Message Date
Todd
a367a88248 spreadsheet: update merged cell references when inserting rows
Fixes #212
2018-10-14 18:26:02 -05:00
Todd
31484197ea spreadsheet: support inserting rows within a sheet
Fixes #203
2018-09-28 05:49:56 -05:00
Todd
99ed4875e1 spreadsheet: support evaluation of shared formulas
This seems to be very uncommon.
2017-10-01 19:29:13 -05:00
Todd
968e4ba29d spreadsheet: use ParseCellReference from reference package
Drop the old cell reference parsing code and use the new code
that parses to a struct and identifies absolute references
2017-10-01 19:29:13 -05:00
Todd
988f2e3290 spreadsheet: move ColumnToIndex/IndexToColumn
Create a spreadsheet/reference package and put these functions
there. This prevents both duplication across the formula &
spreadsheet packages and a cyclic reference.
2017-10-01 19:29:13 -05:00
Todd
d7515808d8 spreadsheet: initial shared formula support 2017-10-01 19:29:13 -05:00
Todd
5bfa034ef9 gooxml: add and use a Log function
This allows redirecting or discarding any
logs produced by the library.
2017-09-30 07:09:26 -05:00
Todd
89b1416b8f gooxml: rework how filenames are calculated
This is needed for pivot tables, split out from that branch
so any further changes to filename handling will be easier in
master.
2017-09-28 18:20:56 -05:00
Todd
c5be4536a9 spreadsheet: support sorting a sheet
The file format doesn't support sorting, so we
need to sort the sheet rows and renumber after sorting.
2017-09-27 18:27:53 -05:00
Todd
5c7852d21e schema: rename spreadsheetml to sml 2017-09-23 10:01:17 -04:00
Todd
09825ac816 schema: rework schema namespaces to work around Windows issues
The go command on Windows doesn't like long path name. To
work around this, this is the first in a series of changes to
shorten the schema disk path structure in a few places.

Fixes #89
2017-09-23 10:01:17 -04:00
Todd
f0de9225cf spreadsheet: return errors if passed an invalid reference 2017-09-21 21:52:15 -04:00
Todd
2c0aa0c665 spreadsheet: add validation for merged cells
Detect overlapping merged cells and report an error
during validation.
2017-09-21 21:52:15 -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
a8d038561c spreadsheet: add support for protecting/unprotecting workbooks/sheets 2017-09-20 15:15:13 -04:00
Todd
49e34b1d90 formula: better support for thousands separator 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
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
9b89ae1f12 spreadsheet: add fast paths for appending rows/cells 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
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
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
ceb8570558 spreadsheet: add support for column formatting 2017-09-09 11:02:39 -05:00
Todd
3b50df7eb7 spreadsheet: add support for conditional formatting 2017-09-09 09:34:57 -05:00
Todd
d5c07a59d6 spreadsheet: add method to determine sheet extents 2017-09-09 09:34:57 -05:00
Todd
924140c87d spreadsheet: add support for merged cells 2017-09-07 19:12:30 -04:00
Todd
8957cf73e3 spreadsheet: add validation for sheet name length 2017-09-07 19:12:30 -04:00
Todd
f70810321d spreadsheet: support adding/removing an auto filter 2017-09-07 16:39:40 -04:00
Todd
2d710a2e6d spreadsheet: ensure rows stay sorted
This fixes an issue with Mac Excel being unable to display
unsorted rows.
2017-09-07 12:44:31 -04:00
Todd
03540b8c38 spreadsheet: add support for defined names 2017-09-07 07:34:52 -04:00
Todd
2498814f67 spreadsheet: add support for hyperlinks 2017-09-07 06:12:41 -04:00
Todd
adb206e663 spreadsheet: always set cell reference numbers 2017-09-07 06:12:41 -04:00
Todd
0aebfb3d95 spreadsheet: pass sheet/row information down to cell wrapper 2017-09-07 06:12:41 -04:00
Todd
ee6ad24531 spreadsheet: add convenience methods
- add a Cell method to the sheet that gets/creates a cell
- chance Row.Cell to not require the row number
- rename EnsureRow to Row
- add examples/tests
2017-09-06 17:41:05 -04:00
Todd
7e0d2edaab spreadsheet: add support for named cells/rows 2017-09-06 15:20:51 -04:00
Todd
f959cb0c9f spreadsheet: working line chart
- needs major cleanup, but it displays in Libre
2017-09-04 11:08:29 -05:00
Todd
f07c57cae7 gooxml: move content types to base package 2017-09-04 11:08:29 -05:00
Todd
1896e7fd06 spreadsheet: allow setting/retrieving sheet name 2017-09-02 17:50:38 -05:00
Todd
4bd04dd2e5 initial commit 2017-08-29 15:06:08 -05:00