Así es muchas empresas empiezan a migrar a openoffice y los sistemas que tienen en visual basic es posible también interoperar con openoffice aqui un extracto de código que sirve para enviar los datos de una matriz a celdas de calc.
Dim oServiceManager As Object
Dim oDesktop As Object
Dim oDoc As Object
Dim oSheet As Object
Dim columna As Object
Dim aNoArgs()
Set oServiceManager = CreateObject("com.sun.star.ServiceManager")
Set oDesktop = oServiceManager.createInstance("com.sun.star.frame.Desktop")
Set oDoc = oDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, aNoArgs())
Set oSheet = oDoc.getSheets().getByIndex(0)
oSheet.getCellByPosition(0, 0).SetString ("FACTURA")
oSheet.getCellByPosition(1, 0).SetString ("FECHA")
oSheet.getCellByPosition(2, 0).SetString ("PRODUCTO")
oSheet.getCellByPosition(3, 0).SetString ("CANTIDAD")
oSheet.getCellByPosition(4, 0).SetString ("PRECIO")
oSheet.getCellByPosition(5, 0).SetString ("VALOR FACTURA")
oSheet.getCellByPosition(6, 0).SetString ("CONSUMIDOR")
oSheet.getCellByPosition(7, 0).SetString ("DESCRIPCION")
Dim r As Integer
Dim c As Integer
For r = 1 To Grid.Rows - 2
For c = 0 To Grid.Cols - 1
Grid.Row = r
Grid.Col = c
If c = 3 Or c = 4 Or c = 5 Then
oSheet.getCellByPosition(c, r).SetValue (Grid.Text)
Else
oSheet.getCellByPosition(c, r).SetString (Grid.Text)
End If
Next
Next
oSheet.getCellByPosition(0, r).SetString ("TOTAL")
oSheet.getCellByPosition(2, r).SetFormula ("=ROW()-2")
oSheet.getCellByPosition(3, r).SetFormula ("=SUM(D2:D" & r & ")")
oSheet.getCellByPosition(4, r).SetFormula ("=SUM(E2:E" & r & ")")
como ven el ejemplo abarca inclusive formulas q podrian ya insertarse en la hoja de cálculo





