[RESUELTO]: Bordes de las celdas

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...

[RESUELTO]: Bordes de las celdas

Notapor Basedw » Lun Feb 18, 2013 11:50 pm

Tengo una macro para definir los bordes de las celdas en una hoja de cálculo: color, línea interior y exterior. Esta macro funciona perfectamente en OOo, pero en LibreOffice no funciona. Ni siquiera da error, simplemente no hace nada. En cambio, si en lugar de definir dos líneas sólo indico una (interior o exterior), sí va bien en LibreOffice.
Agradecería una ayuda.

Código: Seleccionar todo   Expandir vistaContraer vista
Sub FormatoCeldas()
Dim oSel As Object
Dim oBordeLinea As New com.sun.star.table.BorderLine

   oSel = ThisComponent.getCurrentSelection()
   With oBordeLinea
      .Color = RGB(255,0,0)
      .InnerLineWidth = 50
      .OuterLineWidth = 50
      .LineDistance = 20
   End With

   With oSel
      .TopBorder = oBordeLinea   
      .BottomBorder = oBordeLinea   
      .LeftBorder = oBordeLinea      
      .RightBorder = oBordeLinea   
   End With

End Sub
Última edición por Basedw el Mar Mar 05, 2013 1:55 pm, editado 2 veces en total
LibreOffice 3.5 - Ubuntu 12.04
Basedw
 
Mensajes: 27
Registrado: Jue May 17, 2012 10:51 pm

Re: Bordes de las celdas

Notapor mauricio » Mar Feb 19, 2013 12:45 am

Efectivamente, ahora no funciona, supongo que ahora si empieza el cambio en el API, mientras puedes crear un estilo como quieres los bordes y aplicarlo directamente:
Código: Seleccionar todo   Expandir vistaContraer vista
oSel.CellStyle = "NombreEstilo"

De hecho, es la forma en que te recomiendo aplicar estilos, es mucho más sencillo...

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 6061
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Bordes de las celdas

Notapor Basedw » Lun Feb 25, 2013 2:01 pm

Gracias por contestar tan rápido. No he contestado antes por esperar a llegar a la parte del libro en la que se trata el tema de los estilos. Ahí se explica muy bien la forma de crear un estilo pero no he sabido dar con la clave para crear un estilo de celda en el que se definan los bordes de celda.
LibreOffice 3.5 - Ubuntu 12.04
Basedw
 
Mensajes: 27
Registrado: Jue May 17, 2012 10:51 pm

Re: Bordes de las celdas

Notapor Basedw » Dom Mar 03, 2013 10:47 pm

También lo he probado mediante la utilización de estilos de celda. Sucede lo mismo. Si intento definir los bordes de página mediante un estilo ocurre lo mismo.
Funcionan bien en oOO pero no en LibreOffice salvo que no defina más que una de las dos líneas.
Código: Seleccionar todo   Expandir vistaContraer vista
Sub Estilos5R()
Dim oDoc As Object
Dim oSel As Object
Dim oEstilos As Object   
Dim oEstilosCelda As Object
Dim oEstiloNuevo As Object
Dim oBordeLinea As New com.sun.star.table.BorderLine

   'Accedemos al documento actual
   oDoc = ThisComponent
   'Accedemos a la selección
   oSel = ThisComponent.getCurrentSelection()
   'Accedemos a todos los estilos
   oEstilos = oDoc.getStyleFamilies()
   'Accedemos a los estilos de celda
   oEstilosCelda = oEstilos.getByName("CellStyles")
   'Verificamos que el estilo exista
   If oEstilosCelda.hasByName( "Resaltado1" ) Then
      oSel.CellStyle = "Resaltado1"
   Else
      'Si no existe lo creamos
      oEstiloNuevo = oDoc.createInstance( "com.sun.star.style.CellStyle" )
      'Lo agregamos a la colección de estilos   
      oEstilosCelda.insertByName( "Resaltado1", oEstiloNuevo )
      'Establecemos su formato
      With oBordeLinea
         'El color (rojo)
         .Color = RGB(255,0,0)
         'El ancho de la línea exterior
         .OuterLineWidth = 50
         'El ancho de la línea interior
         .InnerLineWidth = 50
         'La distancia entre las líneas
         .LineDistance = 20
      End With

      'Establecemos los bordes
      With oSel
         .TopBorder = oBordeLinea      'Superior
         .BottomBorder = oBordeLinea      'Inferior
         .LeftBorder = oBordeLinea      'Izquierdo
         .RightBorder = oBordeLinea      'Derecho
      End With
      'Y lo aplicamos
      oSel.CellStyle = "Resaltado1"
   End If
   
End Sub
LibreOffice 3.5 - Ubuntu 12.04
Basedw
 
Mensajes: 27
Registrado: Jue May 17, 2012 10:51 pm

Re: Bordes de las celdas

Notapor fornelasa » Lun Mar 04, 2013 11:30 pm

Hola...
Coincido, parece que en LibreOffice no funciona correctamente. Considero que esto es un problema del propio programa, inclusive tal vez estemos hablando de un posible bug, según yo.

Si en la celda A1 tenemos definido el formato por ejemplo, entonces podemos copiarlo facilmente a las celdas que querramos.

Saludos, Federico.
Adjuntos
Estilo.ods
Copiar Estilo
(10.9 KiB) 143 veces
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
fornelasa
 
Mensajes: 3250
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Bordes de las celdas

Notapor Basedw » Mar Mar 05, 2013 1:47 pm

Muchas gracias por la ayuda.
Parece que LibreOffice tiene algunos bugs. No estaba seguro de que la causa no se debiera a que ya hacía algo mal.
Creo que con esto habrá que dar el tema por resuelto. Habrá que esperar a que LibreOffice lo resuelva realmente en una próxima versión.
LibreOffice 3.5 - Ubuntu 12.04
Basedw
 
Mensajes: 27
Registrado: Jue May 17, 2012 10:51 pm

Re: [RESUELTO]: Bordes de las celdas

Notapor Arrázola » Lun Ene 11, 2016 12:00 am

No nada de resuelto.
Ciertamente en LibreOffice no quedan los bordes predeterminados cuando se abre nuevo documento. Sí de uno en uno.
Pendiente de resolución.
Openoffice.org 3.2 - Windows 7
Arrázola
 
Mensajes: 4
Registrado: Sab Abr 14, 2012 1:22 pm

Re: [RESUELTO]: Bordes de las celdas

Notapor SLV-es » Mar Ene 12, 2016 8:34 pm

Hola Arrázola

Si el usuario que hace la pregunta la dá como resuelta, es porque con las respuestas obtenidas considera que se ha dado solución a su consulta, aunque la solución obtenida sea que no la hay.

Por supuesto que el problema sobre el que versa el tema deberá corregirse, y está pendiente, pero no es esa la función del Foro, por lo que consideramos que está bien dar el tema por resuelto.

Saludos :)
+info en la web "no oficial" dedicada a OpenOffice en Español
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
Avatar de Usuario
SLV-es
 
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España

Re: [RESUELTO]: Bordes de las celdas

Notapor mauricio » Mar Ene 12, 2016 9:13 pm

Como dije, usen estilos:
Código: Seleccionar todo   Expandir vistaContraer vista
    oSel.CellStyle = "NombreEstilo"
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 6061
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX


Volver a Macros y API UNO

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados