Mostrar información de un objeto en un archivo de Calc
From Apache OpenOffice Wiki
Sub ObtenerDatos( Objeto As Object )
Dim sRuta As String
Dim oDoc As Object
Dim mArg()
Dim a1() As String, a2() As String
Dim co1 As Integer, sTmp As String
sRuta = "private:factory/scalc"
oDoc = StarDesktop.LoadComponentFromURL( sRuta,"_default",0,mArg )
a1 = Split( Objeto.DBG_Properties, ":" )
a2 = Split( Trim(a1(1)), ";" )
oDoc.Sheets().getByIndex(0).getCellByPosition( 0, 0 ).setString( a1(0) )
For co1 = LBound( a2 ) To UBound( a2 )
sTmp = Trim(a2(co1))
If Left( sTmp, 1) = Chr(10) Then sTmp = Right( sTmp, Len(sTmp)-1 )
oDoc.Sheets().getByIndex(0).getCellByPosition( 0, co1+1 ).setString( sTmp )
Next co1
If Right( sTmp, 1) = Chr(10) Then sTmp = Left( sTmp, Len(sTmp)-1 )
oDoc.Sheets().getByIndex(0).getCellByPosition( 0, co1 ).setString( sTmp )
a1 = Split( Objeto.DBG_Methods, ":" )
a2 = Split( Trim(a1(1)), ";" )
oDoc.Sheets().getByIndex(0).getCellByPosition( 1, 0 ).setString( a1(0)
For co1 = LBound( a2 ) To UBound( a2 )
sTmp = Trim(a2(co1))
If Left( sTmp, 1) = Chr(10) Then sTmp = Right( sTmp, Len(sTmp)-1 )
oDoc.Sheets().getByIndex(0).getCellByPosition( 1, co1+1 ).setString( sTmp )
Next co1
If Right( sTmp, 1) = Chr(10) Then sTmp = Left( sTmp, Len(sTmp)-1 )
oDoc.Sheets().getByIndex(0).getCellByPosition( 1, co1 ).setString( sTmp )
a1 = Split( Objeto.DBG_SupportedInterfaces, ":" )
a2 = Split( Trim(a1(1)), Chr(10) )
oDoc.Sheets().getByIndex(0).getCellByPosition( 2, 0 ).setString( a1(0) )
For co1 = LBound( a2 ) To UBound( a2 )
sTmp = Trim(a2(co1))
If Left( sTmp, 1) = Chr(10) Then sTmp = Right( sTmp, Len(sTmp)-1 )
oDoc.Sheets().getByIndex(0).getCellByPosition( 2, co1 ).setString( sTmp )
Next co1
End Sub
Asegúrate de pasarle como parámetro una variable de objeto; si el objeto no implementa métodos, la macro te dará un error y se detendrá, pero te creará el archivo con al menos las propiedades que implementa.
Sub Pruebas
Dim obj As Object
obj = ThisComponent
Call ObtenerDatos ( obj )
End Sub
| Si tienes dudas acerca de lo aquí explicado, tienes algún problema con AOO, o quieres ampliar la información, no dudes en dirigirte al Foro Oficial en español de Apache OpenOffice para Macros y API UNO |
