Page 1 of 1

OpenOffice Calc

Posted: Mon Sep 15, 2014 9:48 am
by David Williams
Hi

Can anyone share a code snippet to allow me to do this in Calc? In Excel, I use

oSheet:Range(aColumns[16]+"5:"+aColumns[16]+ltrim(str(nRow))):NumberFormat := "####0.0000"

I looked at ToCalc in xBrowse but I'm lost :?

TIA
David

Re: OpenOffice Calc

Posted: Mon Sep 15, 2014 7:28 pm
by Manuel Valdenebro
oSheet:GetCellByPosition( nCol, nRow ):CharHeight = 16 // fontsize
oSheet:GetCellByPosition( nCol, nRow ):CharWeight = 150 // bold
oSheet:GetCellByPosition( nCol, nRow ):CharColor = 0 // black


oSheet:GetCellByPosition( nCol, nRow ):SetValue := 12345 // numeric value

oSheet:GetCellByPosition( nCol, nRow ):HoriJustify=2 // center
oSheet:GetCellByPosition( nCol, nRow ):SetString= customer->NAME // string


For how to use a macro: https://suite.io/mark-alexander-bain/14pc2aa

Re: OpenOffice Calc

Posted: Tue Sep 16, 2014 5:17 am
by anserkk
If you are looking for the number formatting in OpenOffice Calc, then please refer the function GetNumberFormatId(oBook, cNumberFormat, cType) in xbrowse.prg

Code: Select all

oSheet:GetColumns():GetByIndex( nCol-1 ):NumberFormat:=GetNumberFormatId(oBook, cNumberFormat, cType) // Returns nFormatID

Code: Select all

// Function GetNumberFormatId(oBook, cNumberFormat, cType)
cCharLocale = oBook:GetPropertyValue("CharLocale")
nFormatId = oBook:GetNumberFormats:QueryKey(cNumberFormat, cCharLocale, .F.)

// if nFormatID is -1, then it means that this particular format is not available and you need to add the format.
// For this you can use the following code

IF nFormatId = -1 // 'Format is not yet defined
   TRY
      nFormatId = oBook:GetNumberFormats:AddNew(cNumberFormat, cCharLocale)
   CATCH
      MsgInfo( "Could not set the format"  + " " + cNumberFormat )
   END
ENDIF
 
Regards
Anser

Re: OpenOffice Calc

Posted: Tue Sep 16, 2014 4:15 pm
by David Williams
Thanks Guys,

I copied some code from xbrowse and it works a treat. I understand it a lot better now :D

The link is also very useful, Manuel.

David