[RESUELTO]: Bordes de las celdas

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
Basedw
Mensajes: 27
Registrado: Jue May 17, 2012 10:51 pm

[RESUELTO]: Bordes de las celdas

Mensaje por Basedw »

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

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
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Bordes de las celdas

Mensaje por mauricio »

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

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
Basedw
Mensajes: 27
Registrado: Jue May 17, 2012 10:51 pm

Re: Bordes de las celdas

Mensaje por Basedw »

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

Mensaje por Basedw »

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

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
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Bordes de las celdas

Mensaje por fornelasa »

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) Descargado 280 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!
Basedw
Mensajes: 27
Registrado: Jue May 17, 2012 10:51 pm

Re: Bordes de las celdas

Mensaje por Basedw »

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
Arrázola
Mensajes: 4
Registrado: Sab Abr 14, 2012 1:22 pm

Re: [RESUELTO]: Bordes de las celdas

Mensaje por Arrázola »

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
Avatar de Usuario
SLV-es
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España
Contactar:

Re: [RESUELTO]: Bordes de las celdas

Mensaje por SLV-es »

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
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: [RESUELTO]: Bordes de las celdas

Mensaje por mauricio »

Como dije, usen estilos:

Código: Seleccionar todo

    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
Responder