Hi all,
I've just created a spreadsheet with some currency values:

protected void setCellValueAsLocalCurrency( int row, int column,
MonetaryAmount d) {
        Cell cell = CellFormatter.getCell(spreadsheet, row, column);
        cell.setCurrencyValue(d.getNumber().doubleValue(),
d.getCurrency().getCurrencyCode());
}

The cell is created correctly, the type of the cell is also correct
(currency), but if I open the spreadsheet in LibreOffice the numbers are
displayed only as numbers, without currency symbol. If I format the cell
with LibreOffice as "Currency", then the cell value changes to a text
value with currency sign (but the cell type remains "currency").

Just an example.

Somewhere in my program code...

setCellValueAsLocalCurrency(12, 9, {EUR 0.35});
// the latter param is a javax.money.MonetaryAmount object

The ODF-Toolkit creates:

<table:table-cell office:currency="EUR" office:value="0.35"
office:value-type="currency" table:style-name="a141ba1"/>

LibreOffice displays only

0,35

(German localization)

Now, if I change the formatting of this cell to "Currency" (in
LibreOffice), the content changes to

<table:table-cell table:style-name="ce8" office:value-type="currency"
office:currency="EUR" office:value="0.35"
calcext:value-type="currency"><text:p>0,35 €</text:p></table:table-cell>

(Btw., why is the style-name changing?)

As you can see, a new attribute is added: calcext:value-type="currency"
And the content changes to <text:p>0,35 €</text:p>

calcext is defined in styles.xml:
xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0"


"experimental" doesn't sound good for production environments, I think...

Now I want to know if this is a bug in ODF toolkit or if it only occurs
in LibreOffice (using version 5.0.3.2). I think I could provide a patch
if some changes are needed, but I want to get a clear vision of that :-)

Regards,
Ralf.

Reply via email to