Page 1 of 1

dati da excel di openoffice

Posted: Mon Nov 15, 2010 5:02 pm
by Romeo
CIao,

avevo recuperato in giro una programmino con il quale riuscivo a recuperare i dati da un foglio excel di Microsoft)

Ora pero' volevo recuperare i dati da un foglio excel di OpenOffice. Ma lo stesso programma non funziona.
Avete qualcosa su cui "spataccare" ?

Grazie

Romeo/Zingoni

Re: dati da excel di openoffice

Posted: Mon Nov 15, 2010 6:42 pm
by Enrico Maria Giordano
Qualche linea di codice:

Code: Select all

oSrvMan  = CREATEOBJECT( "com.sun.star.ServiceManager" )
oDesktop = oSrvMan:CreateInstance( "com.sun.star.frame.Desktop" )

oDoc = oDesktop:LoadComponentFromURL( "private:factory/scalc", "_blank", 0, {} )

oSheet = oDoc:GetSheets():GetByIndex( 0 )

? oSheet:GetCellByPosition( 0, 0 ):GetString
EMG

Re: dati da excel di openoffice

Posted: Wed Nov 17, 2010 10:47 am
by Romeo
Grazie,
Ho provato ma canno da qualche parte.

Il mio file di excel di openoffice, che si chiama pippo.ods

Intanto dove fa messo nella tua procedura ?
Xche' io devo prendere dei dati da un foglio excel di openoffice GIA' ESISTENTE.


Romeo/Zingoni

Re: dati da excel di openoffice

Posted: Wed Nov 17, 2010 10:56 am
by Enrico Maria Giordano
Purtroppo non ho altri esempi. Guarda anche nel sorgente xbrowse.prg oppure cerca su Internet.

EMG

Re: dati da excel di openoffice

Posted: Thu Mar 10, 2011 6:33 pm
by Romeo
Salve,

partendo da un esempietto di EMG e manipolandolo, qualcosa ho combinato.
...
... minimizzando il problema:

oSrvMan = CREATEOBJECT( "com.sun.star.ServiceManager" )
oDesktop = oSrvMan:CreateInstance( "com.sun.star.frame.Desktop" )

aProp:={}
aadd(aProp,GetPropertyValue(oSrvMan,"Hidden",.t.))

oDoc = oDesktop:LoadComponentFromURL("file:///c:/pippo.ods", "_blank",0, aProp)

oSheet = oDoc:GetSheets():GetByIndex( 0 )

miocampo=oSheet:GetCellByPosition( 0, 0 ):GetString
.
.
.
fine programma
....
Se clicco ora su Open Office, non parte perche' e' rimasto aperto, anche se invisibile, con il file pippo.ods aperto.

Come si fa a chiuderle OpenOffice e quindi liberare anche pippo.ods con fivewin/harbour ?

Ho provato con quit(), end() ecc agendo su: osheet, oDoc, oDesktop, oSrvMan ma mi da sempre errore.

Grazie
Romeo ZIngoni