Am .10.2016, 01:32 Uhr, schrieb Ken Seehart <
kense...@gmail.com>:
> I think I talk too much....
Possibly. I think there probably isn't sufficient discussion on features,
functions and implementation on the mailing list. But on this issue, I
think we'll have to agree to disagree.
> I am very grateful for this awesome project and I want to give something
> back.
>
> Do you have any objection to me branching a version (which you can merge
> if you like the results) with the following properties?
The beauty of open source is that you can fork without permission. I do
not anticipate merging this code into the project.
> - *Full round-trip support of merged cells *(including border styles)
> - If my code doesn't operate on merged cells in the document, they
> will remain intact when loaded and saved.
> - *Revised merge_cells function that mimics cell merge operation in
> Excel*
> - Caveat: operations such as overlapping merges that the Excel UI
> prevents will have undefined results
> - Caveat: modifying styles in underlying merged cells will have
> undefined results that are consistent with the reference
> implementation
Please avoid the term "reference implementation". While it's fine to
orient expectations around Excel as by far the most common OOXML client it
is in *no* way a reference implementation.
> Along with that I can contribute some other stuff I've been doing:
>
> - A more complete *Copy Worksheet *that does a lot more than just
> cells
> - Maybe* inserting/deleting rows/columns *(conserving things like cell
> references, groups, merges, formulas, etc)
> - This one is in "works for me" state, so it might be a while to get
> it production ready.
I'd suggest maintaining this kind of stuff in a separate branch and
working feature by feature. I do plan to add aggregate
(insert/delete/move) at some point but only *after* changing the
underlying data model. The tokeniser should be able to handle cell
references but I'd be happy to leave this up to clients (there are lots
and lots things that might be referencing cells). At the moment you need a
lot of code that is tied to internal implementation and this will become
useless.