RE:exportar cursor a openoffice
Echale una hoejada a este articulo
Como automatiza una hoja de calculo de Microsoft Excel desde Visual FoxPro
En esta sencilla guía en la que encontrara tips básicos para automatizar una hoja de cálculo, muchas veces nos hemos encontrado con la necesidad de crear desde los datos de nuestra aplicación un documento para un usuario, y por lo general siempre se utiliza Excel.
Creación de la hoja de calculo
Para poder acceder a Excel desde Fox primero tenemos que crear un objeto el cual podamos manipular a nuestro antojo.
tmpsheet = GetObject('','excel.sheet')
Luego hacemos una referencia a la aplicación, la cual nos permitirá manipular características de Excel como por ejemplo que no muestre las líneas de división de celdas
XLApp = tmpsheet.application
XLApp.ActiveWindow.DisplayZeros = .f. &&No muestra las celdas en valor 0
XLApp.ActiveWindow.DisplayGridlines = .f. &&No muestra las líneas de división
XLApp.Visible = .t. &&Aplicacion visible
XLApp.WorkBooks.Add() &&Agrega una Hoja de calculo
Luego de agregar una hoja de calculo creamos una referencia a esta
XLSheet = XLApp.ActiveSheet
Ahora podemos manipular la hoja de calculo a nuestras necesidades.
Manipularon de la hoja de calculo
Insertar una imagen: muchas veces en nuestras hojas de calculo queremos o necesitamos inserta una imagen como por ejemplo el logo de la compañía o etc. Esto se hace de la siguiente manera
XLSheet.Pictures.Insert(FULLPATH("bmp\logo.bmp")) .name="Picture 1"
XLSheet.Pictures.Insert(“c:\aplicacion\bmp\logo.bmp") .name="Picture 1"
En el anterior ejemplo insertamos una imagen, en el primer objeto le decimos a Fox que retorne la ruta completa de una imagen partir de una ruta relativa, en el segundo ejemplo asignamos la ruta de la imagen, también asignamos un nombre al objeto y así podemos cambiar las características del objeto como por ejemplo el ancho
XLSheet.Shapes("Picture 1").Width=100
Combinar celdas: Para combinar celdas podemos especificar un rango de celdas asi
XLSheet.Range("F1:J1").Merge
Cambiar el formato: primero necesitamos especificar el rango de celdas a las cuales les deceamos cambiar el formato, podemos utilizar el comando WITH de Fox asi:
WITH XLSheet.Range("F1:J1")
.Merge
.value='EL TEXTO QUE DESEAMOS MOSTRAR'
.HorizontalAlignment=xlCenter &&Aliniar al centro *
.VerticalAlignment=xlCenter
.Font.Bold=.t.
.Font.Size=14
.Font.Name=’Arial’
ENDWITH
• Las constantes de Excel estan al final de la Guía.
Cambiar el tamaño de una fila:
XLSheet.Rows(4).RowHeight=20
Cambiar el tamaño de una columna:
XLSheet.Columns("A:A").ColumnWidth=19.57
Ajustar el tamaño a todas las columnas:
XLSheet.Columns().AutoFit
Insertar filas:
XLSheet.Rows("1:1").Insert
Bordes: Una forma de insertar bordes es especificar un rango y luego ajustar sus propiedades según nuestras necesidades asi:
WITH XLSheet.Range("A4:Q4")
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders(xlEdgeLeft).LineStyle = xlNone
.Borders(xlEdgeTop).LineStyle = xlNone
.Borders(xlEdgeRight).LineStyle = xlNone
.Borders(xlInsideVertical).LineStyle = xlContinuous
.Borders(xlInsideVertical).Weight = xlThin
.Borders(xlInsideVertical).ColorIndex = xlAutomatic
ENDWITH
O también asi:
WITH XLSheet.Range("A4:Q4").Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
ENDWITH
Cambiar el color de varias columnas:
XLSheet.Range("H:H;J:J;L:L;N:N;P:P").Font.ColorIndex=42
Formato numero:
XLSheet.Columns("E:Q").NumberFormat = "#,##0"
Configurar el area y formato de impression:
WITH XLSheet.PageSetup
.PrintArea = "$A:$Q" &&Area de Impresion
.PrintTitleRows = "$1:$4" &&Filas como titulo
.PrintTitleColumns = ""
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = "&D &T" &&Pie de pagina fecha y hora
.CenterFooter = ""
.RightFooter = "&P" &&Pie de pagina izquierdo Numero pagina
*Margenes
.LeftMargin = XLApp.InchesToPoints(0.393700787401575)
.RightMargin = XLApp.InchesToPoints(0.393700787401575)
.TopMargin = XLApp.InchesToPoints(0.393700787401575)
.BottomMargin = XLApp.InchesToPoints(0.393700787401575)
.HeaderMargin = XLApp.InchesToPoints(0)
.FooterMargin = XLApp.InchesToPoints(0)
.PrintHeadings = .f.
.PrintGridlines = .f.
.PrintComments = xlPrintNoComments
* Centrar area
.CenterHorizontally = .t.
.CenterVertically = .f.
.Orientation = xlLandscape
.Draft = .f.
.PaperSize = xlPaperLegal
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = .f.
*Imprimir a un %
.Zoom = 80
ENDWITH
Una forma practica a un que poco ortodoxa de manejar las propiedades y métodos de Microsoft Excel es haciendo una macro en Excel y Observa su codigo. Unas equivalencias en codigo son:
Macro de Excel En Fox
Range("B3:H21").Select XLSheet.Range("A4:Q4")
Selection.NumberFormat = "#,##0.00" XLSheet.Range("A4:Q4").NumberFormat = "#,##0.00"
ActiveWindow XLApp.ActiveWindow
Constantes de Microsoft Excel
Las constantes de Excel pueden ser guardadas en un archivo .H como por ejemplo XLS.H, e integrarlas a nuestros programas con #INCLUDE XLS.H, las constantes son:
* Colors
#DEFINE xlColorRojo 3
#DEFINE xlColorAzul 47
* Constants
#DEFINE xlDialogSetBackgroundPicture 492
#DEFINE xlDialogAutoCorrect 485
#DEFINE xlDialogFileSharing 481
#DEFINE xlDialogVbaMakeAddin 478
#DEFINE xlDialogActiveCellFont 476
#DEFINE xlDialogFindFile 475
Suerte