export of Calc functions to OOXML

Winfried Donkers W.Donkers at dci-electronics.nl
Mon Jul 21 02:39:30 PDT 2014

Hi Eike,

>> The Calc function GAMMADIST has an optional 4th argument (cumulative), whereas this argument is mandatory for Excel.
>> When saving a document with function GAMMADIST as xls, this argument is added if necessary (in /sc/source/filter/excel/xeformula.cxx).
>> When saving this document as xlsx, this argument is not added.

> That's odd, XclExpFmlaCompImpl::AppendTrailingParam() is called in
> XclExpFmlaCompImpl::FinishFunction() that should be called also for OOXML export (or was it?). Best to place a breakpoint there and see if/when it gets hit.

Neither XclExpFmlaCompImpl::AppendTrailingParam(), nor XclExpFmlaCompImpl::FinishFunction() gets hit when set as a breakpoint in gdb.

> BUT, I think I might know why it doesn't get called anymore ... the OOXML formula string is now directly generated from the token array, which bypasses all mechanisms we had in place for the Excel binary export and the earlier OOXML export benefitted from. It may be we have to re-implement that entirely :-(  and end up with an almost duplicated functionality..

It seems to me that re-implementing the OOXML export functionality is rather a complex business, i.e. not something suitable for me. Shall I create a bug report for this? 

>> As I want to use the same principle for F.DIST (see fdo#40835), which also has a 4th argument that is optional in ODFF1.2 and mandatory in Excel, and maybe more functions.

> Would make sense to add those similar to the existing ones.

That will have to wait till after the re-implementation then ;-)


More information about the LibreOffice mailing list