Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Creare foglio elettronico OpenOffice

70 views
Skip to first unread message

Daniele

unread,
Dec 28, 2009, 2:15:31 AM12/28/09
to
Un saluto a tutti i partecipanti al NG.
Dovrei creare un file "ODS", foglio elettronico OpenOffice, prendendo i dati
da un Recordset (uso VB6). Dove posso trovare qualche informazione sugli
oggetti da utilizzare ?

Grazie per i suggerimenti.
Ciao e tanti auguri a tutti per il nuovo anno. Daniele


VITRIOL

unread,
Dec 28, 2009, 2:38:45 AM12/28/09
to
Il 28/12/2009 8.15, Daniele ha scritto:

> Dovrei creare un file "ODS", foglio elettronico OpenOffice, prendendo i dati
> da un Recordset (uso VB6). Dove posso trovare qualche informazione sugli
> oggetti da utilizzare ?

Io non ti so aiutare nello specifico, perᅵ qui trovi un piccolo tutorial
generico su come programmare OOo da VB6. Prova a vedere se trovi qualche
spunto:

http://www.kalitech.fr/clients/doc/VB_APIOOo_en.html

In ogni caso qui trovi la guida ufficiale alla programmazione di UNO (le
API di OpenOffice). Credo che la maggior parte degli esempi siano
ovviamente in Java e C++, ma dovrebbero essere applicabili a tutti i
linguaggi:

http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/OpenOffice.org_Developers_Guide

--
news:it-alt.comp.software.openoffice : Il newsgroup dedicato a
OpenOffice.org, la suite open source di applicazioni per ufficio.
Scarica "OpenOffice.org 3.0 Soluzioni a raccolta", molto piᅵ di semplici
FAQ! http://it.openoffice.org/doc/manuali/

Daniele

unread,
Dec 28, 2009, 3:20:48 AM12/28/09
to
> In ogni caso qui trovi la guida ufficiale alla programmazione di UNO (le
> API di OpenOffice). Credo che la maggior parte degli esempi siano
> ovviamente in Java e C++, ma dovrebbero essere applicabili a tutti i
> linguaggi:
>
> http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/OpenOffice.org_Developers_Guide
>
> --
> news:it-alt.comp.software.openoffice : Il newsgroup dedicato a
> OpenOffice.org, la suite open source di applicazioni per ufficio.
> Scarica "OpenOffice.org 3.0 Soluzioni a raccolta", molto pi� di semplici
> FAQ! http://it.openoffice.org/doc/manuali/

Ti ringrazio VITRIOL
Da un primo sguardo mi sembra che la strada indicata sia molto interessante.
Ciao e tanti auguri ancora. Daniele


Andrea [Work]

unread,
Dec 28, 2009, 9:02:39 AM12/28/09
to
Il Mon, 28 Dec 2009 08:15:31 +0100, Daniele ha scritto:

> Un saluto a tutti i partecipanti al NG.
> Dovrei creare un file "ODS", foglio elettronico OpenOffice, prendendo i dati
> da un Recordset (uso VB6). Dove posso trovare qualche informazione sugli
> oggetti da utilizzare ?

Per la domanda ti han risposto.
Se ti pu� interessare io, per le esportazioni "raw" generiche di tabelle,
creo un file di testo in formato Testo e Tabulazione e lo salvo con
"Nome.xls", e poi lo lancio con una shellexecute che lancia Excel o Calc o
altro correlato all'estensione.

In questo modo hai un'esportazione e te ne freghi di quello con cui lo
leggeranno, il tutto si riduce a:

| AdoRec.Open StrSql, AdoCN, adOpenKeyset, adLockPessimistic, adCmdText
|
| On Error Resume Next
| Dim aa As String, ff As Integer, bb As String, i As Integer
|
| aa = AdoRec.GetString(adClipString, , vbTab, vbNewLine, "")
|
| ' ColumnHeader
| For i = 0 To AdoRec.Fields.Count - 1
| bb = bb & AdoRec.Fields(i).Name & vbTab
| Next
|
| ff = FreeFile
| Open PathFile For Output As #ff
| Print #ff, bb
| Print #ff, aa
| Close ff
| ShellExecute 0, vbNullString, PathFile, vbNullString, "", SW_SHOWNORMAL
| On Error GoTo 0

SB

unread,
Dec 28, 2009, 9:21:49 AM12/28/09
to
Il giorno Mon, 28 Dec 2009 08:15:31 +0100, "Daniele"
<daniele....@tiscali.it> ha scritto:

>Un saluto a tutti i partecipanti al NG.
>Dovrei creare un file "ODS", foglio elettronico OpenOffice, prendendo i dati
>da un Recordset (uso VB6). Dove posso trovare qualche informazione sugli
>oggetti da utilizzare ?

Per quello che riguarda la scrittura di un foglio in Calc, ka cosa non �
particolarmente difficile se sai come scrivere su un foglio elettronico e se hai
la pazienza di cercare in rete degli esempi.

Qui avevo postato ad esempio il codice per scrivere in una cella,

http://is.gd/5E3F4

Qui ci sono altre funzioni che ti serviranno per interagire con openoffice,
considera che uso il metodo 'dispatch', cio� il foglio Calc viene aperto e il
programma VB successivamente scrive nelle celle.
____________

Sub firstOOoProc()

Dim oSM 'Root object for accessing OpenOffice from VB
Dim oDesk, oDoc As Object 'First objects from the API
Dim arg() 'Ignore it for the moment !

'Instanciate OOo : this line is mandatory with VB for OOo API
Set oSM = CreateObject("com.sun.star.ServiceManager")
'Create the first and most important service
Set oDesk = oSM.createinstance("com.sun.star.frame.Desktop")


'Create a new doc
Set oDoc = oDesk.LoadComponentFromUrl("private:factory/swriter", "_blank", 0,
arg())
'Close the doc
oDoc.Close (True)
Set oDoc = Nothing

'Open an existing doc (pay attention to the syntax for first argument)
' Set oDoc = oDesk.loadComponentFromURL("file:///c:/dev/ooo/test.doc",
"_blank", 0, arg())
Set oDoc = oDesk.LoadComponentFromUrl(ConvertToUrl("C:\My Documents\
Prova.doc"), "_blank", 0, arg())

'Save the doc
' Call oDoc.storeToURL("file:///c:/dev/ooo/test2.sxw", arg())
Call oDoc.storeToURL(ConvertToUrl("C:\Test.doc"), arg())
'Close the doc
oDoc.Close (True)
Set oDoc = Nothing

End Sub

'Converts a Ms Windows local pathname in URL (RFC 1738)
'Todo : UNC pathnames, more character conversions
'
Public Function ConvertToUrl(strFile As String) As String
strFile = Replace(strFile, "\", "/")
strFile = Replace(strFile, ":", "|") ' ":/") '
strFile = Replace(strFile, " ", "%20")
strFile = "file:///" + strFile
ConvertToUrl = strFile
End Function

'Creates a sequence of com.sun.star.beans.PropertyValue s
'
Public Function MakePropertyValue(cName, uValue) As Object
Dim oStruct, oServiceManager As Object
Set oServiceManager = CreateObject("com.sun.star.ServiceManager")
Set oStruct =
oServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
oStruct.Name = cName
oStruct.Value = uValue
Set MakePropertyValue = oStruct
End Function

'A simple shortcut to create a service
'
Public Function CreateUnoService(strServiceName) As Object
Dim oServiceManager As Object
Set oServiceManager = CreateObject("com.sun.star.ServiceManager")
Set CreateUnoService = oServiceManager.createinstance(strServiceName)
End Function

--
ciao
Stefano

Daniele

unread,
Dec 28, 2009, 9:41:34 AM12/28/09
to

> | ff = FreeFile
> | Open PathFile For Output As #ff
> | Print #ff, bb
> | Print #ff, aa
> | Close ff
> | ShellExecute 0, vbNullString, PathFile, vbNullString, "",
> SW_SHOWNORMAL
> | On Error GoTo 0

Ciao Andrea
Ti ringrazio per l'aiuto.
Ciao e auguri di buon 2010.
Daniele


Daniele

unread,
Dec 28, 2009, 9:46:55 AM12/28/09
to

> Public Function CreateUnoService(strServiceName) As Object
> Dim oServiceManager As Object
> Set oServiceManager = CreateObject("com.sun.star.ServiceManager")
> Set CreateUnoService = oServiceManager.createinstance(strServiceName)
> End Function
>
> --
> ciao
> Stefano

Ciao Stefano

0 new messages