wenas compañeros, eh alguien no tendra por ahi algun code para exportar datos de listview a la hoja de calculo del OpenOffice, yo tengo un code para exportar al excel que es de esta manera.
Private Sub Exportar()
Dim objExcel As Excel.Application
Dim Ancho As Integer
Dim Dato As Variant
Dim c As Integer
Dim f As Integer
Dim ColumnaExcel As Integer
Set objExcel = New Excel.Application
With objExcel
.Visible = False
.SheetsInNewWorkbook = 1 'Determina el numero de hojas que se mostrara en el Excel
.Workbooks.Add 'Crea el Libro
.Sheets("Hoja1").Name = "Registre"
'Recorrer las celdas del Listview
'----------------------------------------------
' Bucle principal
'---------------------------------------------
For f = 0 To ListSearch.ListItems.Count
ColumnaExcel = 1
For c = 1 To ListSearch.ColumnHeaders.Count
If f = 0 Then ' Títulos
.Cells(1, ColumnaExcel) = ListSearch.ColumnHeaders(c).Text
Else
If c = 1 Then
.Cells(f + 1, 1) = ListSearch.ListItems(f).Text
Else
Dato = ListSearch.ListItems(f).SubItems(c - 1)
' Prevención para que las fechas pasen a Excel como tales
' En mi listview los títulos de las columnas fecha empiezan con F.
If Left(ListSearch.ColumnHeaders(c).Text, 2) = "F." And Dato <> "" Then Dato = CDate(Dato)
.Cells(f + 1, ColumnaExcel) = Dato
End If
.Cells(f + 1, ColumnaExcel + 1).Select
ColumnaExcel = ColumnaExcel + 1
End If
Next
Next
'----------------------------------------------
' Fin del Bucle principal
'---------------------------------------------
.Range("A1").Select
.Range(.Selection, .Selection.End(xlToRight)).Select
PonerSombraCelda objExcel, 15, xlSolid
PonerBordeCelda objExcel
.Range(.Selection, .Selection.End(xlDown)).Select
PonerBordeCelda objExcel
.Cells.Select
.Selection.WrapText = False
.Cells.EntireColumn.AutoFit
.Range("A1").Select
End With
'Preparar impresión en apasiado y a una hoja de ancho
With objExcel.ActiveSheet.PageSetup
.Orientation = xlLandscape
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = False
End With
'fraRegistros.Visible = False
objExcel.Visible = True
Set objExcel = Nothing
Screen.MousePointer = vbDefault
End Sub
Private Sub PonerBordeCelda(Objeto As Excel.Application)
With Objeto
.Selection.Borders(xlEdgeLeft).Weight = xlThick
.Selection.Borders(xlEdgeTop).Weight = xlThick
.Selection.Borders(xlEdgeBottom).Weight = xlThick
.Selection.Borders(xlEdgeRight).Weight = xlThick
.Selection.Borders(xlInsideVertical).Weight = xlThin
.Selection.Borders(xlInsideHorizontal).Weight = xlThin
End With
End Sub
Private Sub PonerSombraCelda(Objeto As Excel.Application, ColorIndex As _
Integer, Pattern As Integer)
With Objeto.Selection.Interior
.ColorIndex = ColorIndex
.Pattern = Pattern
End With
End Sub
De esa manera exporto mi datos a Excel pero no tengo la mas remota idea para enviar los datos al OpenOffice estuve investigando en Google y no encontre ningun ejemplo como en el trabajo han estado instalando el Open y weno me pidieron que tambien los datos que tengo se exporten al open, alguien me puede decir al menos de donde sacar informacion al respecto gracias, Salu2....
jajaj cuanto buscaste
http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/415-visual-basic-con-open-office.htm
Saludos
:-X si habia visto ese ejemplo de Recursos uhmm pero no entiendo muy bien el proceso de todas maneras gracias Leandro Salu2.
Weno despues de todo logre enviar los datos del ListView a Cal de OpenOffice aca les dejo el code pues si alguien lo necesite Salu2..
Private Sub Command1_Click()
Dim oServiceManager As Object
Dim oDesktop As Object
Dim oDoc As Object
Dim oSheet As Object
Dim Columna As Object
Dim ColumnaCal As Integer
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)
X = 1 'Para dejar espacio en la primera fila
ColumnaCal = 0
For c = 1 To ListSearch.ColumnHeaders.Count
oSheet.getCellByPosition(ColumnaCal, 0).SetString ListSearch.ColumnHeaders(c)
ColumnaCal = ColumnaCal + 1
Next
For i = 1 To ListSearch.ListItems.Count Step 1
For ss = 1 To 12 'Cantidad de Columnas
oSheet.getCellByPosition(0, X).SetValue (ListSearch.ListItems(i))
oSheet.getCellByPosition(ss + 0, X).SetString (ListSearch.ListItems(i).SubItems(ss))
Next ss
X = X + 1
Next i
End Sub
hOla..!! sOy nueva en esto de los foros y solo quiero preguntarte (jack06) que es lo qe haces con la variable aNoArgs() porque intente probar tu codigo en mi programa y me marca un error precisamente en esa variable ya que manda un mensjae qe dice: El numero de indices es inferior al numero de dimensiones de la matriz indizada
y creo que es lo qe me provoca que no funcione..!! te agradeceriia muchiisimo tu ayuda..!! ;D