60 Commits

Author SHA1 Message Date
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
Todd
cdb3f64c4a spreadsheet: more fill cleanup 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
9433c08f42 spreadsheet: rework fills
Fills were a little odd before, this modifies them to
work similarly to the other type (user API didn't change).
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
41e2d6eaec document: add support for rewriting document filenames
The problem this solves is loading and re-saving a document
that uses an odd file structure (e.g. the main body is
not at word/document.xml).  I've seen this occur with spreadsheets
but not with a docx in the wild, however it's fairly simple
to handle in case it occurs.
2017-09-08 18:30:40 -04:00
Todd
9b33f72f6e spreadsheet: add spreadsheet golden test 2017-09-08 18:20:52 -04: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
d8554f54de spreadsheet: fix bug when saving sheets loaded with themes 2017-09-07 12:44:31 -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
607db91c86 spreadsheet: add more unit tests 2017-09-07 06:12:41 -04:00
Todd
982e3a4f7d spreadsheet: add methods for getting a cell's value as date/time 2017-09-07 06:12:41 -04:00
Todd
5392829790 spreadsheet: add method for retrieving cell value as a number/bool 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
80fc93a1a7 spreadsheet: add support for rich text within a cell 2017-09-06 15:20:51 -04:00
Todd
10498401d6 spreadsheet: add helpers and example for number/date/time formatting 2017-09-05 17:55:22 -05:00
Todd
70051ae509 spreadsheet: support setting date/time cell values 2017-09-05 17:55:22 -05:00
Todd
7562c4e7bb spreadsheet: provide an Epoch for dealing with older spreadsheets 2017-09-05 17:55:22 -05:00
Todd
17e9b1b684 spreadsheet: add support for ECMA-376 defined number formats 2017-09-05 17:55:22 -05:00
Todd
cd10a33f30 spreadsheet: improve Excel compatibility
Mac Excel apparently doesn't like empty drawing
relationships file.
2017-09-05 10:01:28 -05:00
Todd
5ee1459321 spreadsheet: add a multi chart example 2017-09-05 08:07:28 -05:00
Todd
e83404616d Revert "schema: apply more default values"
This caused problems with Libre.

This reverts commit 59b2711e1b87be534c9cd3d155710d13cfe7743b.
2017-09-05 06:33:38 -05:00
Todd
59b2711e1b schema: apply more default values
These are implied values as they are the defaults in the XSD
for optional attributes/elements. However I've noticed that
I keep running into issues where Mac Excel/Word fail to open
a file unless an optional default is provided.

I'll just add them all to hopefully increase compatibility and
save painful file format debugging sessions later.
2017-09-04 17:14:06 -05:00
Todd
817869647c chart: move chart related classes from spreadsheet to chart 2017-09-04 16:16:03 -05:00
Todd
bb72680e01 spreadsheet: fix drawing for Mac Excel 2017-09-04 15:01:14 -05:00
Todd
f91f68b26a spreadsheet: rename InitializeDefault to InitializeDefaults 2017-09-04 15:01:14 -05:00
Todd
b19266aced spreadsheet: initial fixes for Mac Excel 2017-09-04 15:01:14 -05:00
Todd
35a2b8026e spreadsheet: add a line chart example and supporting code 2017-09-04 11:08:29 -05:00
Todd
ba68d59d67 schema: serialize booleans as 1/0 instead of true/false
This matches what the MS products and LibreOffice do.
2017-09-04 11:08:29 -05:00
Todd
96a7f9dc80 spreadsheet: allow setting drawing extents 2017-09-04 11:08:29 -05:00
Todd
f959cb0c9f spreadsheet: working line chart
- needs major cleanup, but it displays in Libre
2017-09-04 11:08:29 -05:00
Todd
0dae44f002 chart, drawing: start adding chart & drawing support
- Created chart, drawing packages for the chart/drawing stuff common
  between document type
- Need to go back and clean up any drawing related document types after
2017-09-04 11:08:29 -05:00
Todd
9090e4f93c meta: move filename information out of packages
This seems like the better choice, a lot of the logic is shared
between the document types, and it allows generating filenames in
a single place.

The only downside is that you must pass in the document type as
some content types have different typical names depending on the
document type (e.g. an 'office document' is the main document.xml,
workbook.xml and presentation.xml
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
74a59930f2 spreadsheet: write out charts/drawings 2017-09-04 11:08:29 -05:00
Todd
6164089457 zippkg: start breaking out decoding
Decoding was getting fairly complicated, it seems cleaner
to have something handle the relationships file and traversal
and the document just be notified via callback when new
files have been found.
2017-09-04 11:08:29 -05:00
Todd
ef0d194ae2 spreadsheet: fix issue loading spreadsheets with non-standard naming 2017-09-02 17:50:38 -05:00
Todd
13820691e2 spreadsheet: save worksheet relationships 2017-09-02 17:50:38 -05:00
Todd
a06fea99f7 spreadsheet: add saving/loading of themes 2017-09-02 17:50:38 -05:00
Todd
8f45ea019b spreadsheet: add thumbnail support 2017-09-02 17:50:38 -05:00