Newsgroup: it.comp.lang.visual-basic
Titolo: Creare foglio elettronico OpenOffice

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 

 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/

 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

 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

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

 |   On Error GoTo 0
Ciao Andrea
Ti ringrazio per l'aiuto.
Ciao e auguri di buon 2010.
Daniele 

  Stefano
Ciao Stefano
