List Info

Thread: Strange thing with formulas in Calc?




Strange thing with formulas in Calc?
user name
2006-06-22 21:20:29
Here are two lines from a macro I wrote to remove ' from
cells in cell  
ranges, for example if a cell formula is '20 my macro will
convert it to  
20.

Selection=ThisComponent.CurrentSelection
Data=Selection.getFormulaArray

I tested the macro and all seemed to work perfectly until I
tried it on a  
spreadsheet with floating points. The points is actually a
comma, since  
that is Swedish standard.

So I look at a cell, which contains '0,06253
Of course 0,06253 is shown in the cell. The ' can only be
seen in the cell  
formula field.

However, in my macro, getFormulaArray seems to return
0,06253 in this  
example and it seems like as soon there is a comma involved,
the ' can not  
be detected with getFormulaArray.

Any suggestions for solutions for this problem?

I am going to experiment with it myself, but I thought that
if someone  
already know the answer, I don't have to invent the wheel
again.

Thanks!
-- 
Johnny

------------------------------------------------------------
---------
To unsubscribe, e-mail: dev-unsubscribeapi.openoffice.org
For additional commands, e-mail: dev-helpapi.openoffice.org

Strange thing with formulas in Calc?
user name
2006-06-23 09:27:02
Johnny Andersson wrote:
> Here are two lines from a macro I wrote to remove '
from cells in cell 
> ranges, for example if a cell formula is '20 my macro
will convert it to 
> 20.
> 
> Selection=ThisComponent.CurrentSelection
> Data=Selection.getFormulaArray
> 
> I tested the macro and all seemed to work perfectly
until I tried it on 
> a spreadsheet with floating points. The points is
actually a comma, 
> since that is Swedish standard.
> 
> So I look at a cell, which contains '0,06253
> Of course 0,06253 is shown in the cell. The ' can only
be seen in the 
> cell formula field.
> 
> However, in my macro, getFormulaArray seems to return
0,06253 in this 
> example and it seems like as soon there is a comma
involved, the ' can 
> not be detected with getFormulaArray.

Note that there is no quote in such a cell. The cell
contains the text 
"20". If you edit the cell, a quote is
prepended, so editing results in 
a text again. This is done if input of the cell's text,
using the cell's 
number format (including the locale), would result in a
number.

The API getFormula/setFormula methods do something similar,
but not the 
same, because they always format/interpret numbers in en-US
locale (so 
the same formula string can be used regardless of the
user's locale).

> Any suggestions for solutions for this problem?

Don't bother with quotes. Look for text that can be
interpreted as a 
number, and replace it with that number (and don't forget
that part of 
"can be interpreted as a number" is the handling
of different locales).

Niklas

------------------------------------------------------------
---------
To unsubscribe, e-mail: dev-unsubscribeapi.openoffice.org
For additional commands, e-mail: dev-helpapi.openoffice.org

[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )