Automatización Excel.

Queridos Amigos.. Necesito por favor ejemplos de automatización de Excel desde Visual Foxpro que incluya centrar textos, adicionar marcos a un rango de celdas, combinar celdas, cambiar orientación texto, centrar entre rango de fechas imprimir, etc.
Gracias... Moisés Rodríguez (ElZorroMoises) <elcorreodemoises@hotmail.com>
1

1 respuesta

1
Respuesta de
Mira el siguiente código...Te puede dar algunas ideas.
*---Creación de Página en Excel Tomando Datos de una Tabla---*
*---Devilzito---*
*---Euro-Line Panamericana ---*
*--- 27-Abril-2004 ---*
**Si la Pc no tiene Excel**
on error do maneja with error()
**-----------------------**
local OBJXLS, IMAGXLS, OBJSELEC,LINEA,CONTADOR,CADENA_SUMA,FOB,TOTAL_CIF
#DEFINE IMAGXLS "F:\RECIBO_BODEGA\DIBUJO.BMP"
#DEFINE LINEA 13
#DEFINE Prepara "Abdiel Prout"
#DEFINE Empresa "Euro-line Panamericana (Panamá S.A.)"
OBJXLS=CREATEOBJECT("EXCEL.APPLICATION")
WITH OBJXLS
.WORKBOOKS.ADD()
*-Definiendo Orientación Y Tamaño de la Página-*
.activeworkbook.activesheet.pagesetup.orientation=2 &&Landscape
.activeworkbook.activesheet.pagesetup.papersize=5 && 81/2 * 14
*-----------------------------------
*-Definiendo Ancho de las columnas-*
.Columns("A:A").ColumnWidth = 17.29
.Columns("B:B").ColumnWidth = 9.71
.Columns("C:C").ColumnWidth = 12.43
.Columns("D:D").ColumnWidth = 8.29
.Columns("E:E").ColumnWidth = 11.71
.Columns("F:F").ColumnWidth = 8.86
.Columns("G:G").ColumnWidth = 11.14
.Columns("H:H").ColumnWidth = 22.43
.Columns("I:I").ColumnWidth = 12.86
*-----------------------------------
*-Insertando Logo de Euro-Line y haciendo visible la hoja de Excel*
.Range("A2").Select
.ActiveSheet.Pictures.Insert(IMAGXLS).Select
.VISIBLE=.T.
*-----------------------------------
*-Insertando Encabezados Generales*
.Range("A6").Select
OBJSELEC=.SELECTION()
WITH OBJSELEC.FONT
.BOLD=.T.
.NAME="TIMES"
.SIZE="16"
ENDWITH
*---Buscando el nombre del Cliente---*
select clienzlc
set order to cuenta
seek thisform.combo1.value
.ActiveCell.FormulaR1C1 = "Reporte de mercancías en bodega para "+clienzlc.cliente
set order to cliente
*-----------------------------------
.Range("A8").Select
OBJSELEC=.SELECTION()
WITH OBJSELEC.FONT
.NAME = "ARIAL"
.BOLD=.T.
.SIZE=8
ENDWITH
.ActiveCell.FormulaR1C1 = date()
*_--Lineas de Arriba--_*
.Range("A10:I10").Select
OBJSELEC=.SELECTION()
WITH OBJSELEC
.BORDERS(4).LineStyle=3
.BORDERS(4).Weight=3
.BORDERS(4).ColorIndex=1
ENDWITH
*___________________*
.Range("A11:I12").Select
OBJSELEC=.SELECTION()
WITH OBJSELEC.FONT
.BOLD=.T.
.NAME="Arial"
.SIZE="8"
ENDWITH
.ActiveCell.FormulaR1C1 = "Suplidor"
.Range("B11").Select
.ActiveCell.FormulaR1C1 = "Factura No"
.Range("C11").Select
.ActiveCell.FormulaR1C1 = "Fecha de "
.Range("C12").Select
.ActiveCell.FormulaR1C1 = "Recepción"
.Range("D11").Select
.ActiveCell.FormulaR1C1 = "Bultos"
.Range("E11").Select
.ActiveCell.FormulaR1C1 = "Peso"
.Range("E12").Select
.ActiveCell.FormulaR1C1 = "Declarado"
.Range("F11").Select
.ActiveCell.FormulaR1C1 = "Cubicaje"
.Range("F12").Select
.ActiveCell.FormulaR1C1 = "m3"
.Range("G11").Select
.ActiveCell.FormulaR1C1 = "Valor"
.Range("G12").Select
.ActiveCell.FormulaR1C1 = "USD"
.Range("H11").Select
.ActiveCell.FormulaR1C1 = "Tipo de "
.Range("H12").Select
.ActiveCell.FormulaR1C1 = "Mercancía"
*_--Lineas de Abajo--_*
.Range("A12:I12").Select
OBJSELEC=.SELECTION()
WITH OBJSELEC
.BORDERS(4).LineStyle=3
.BORDERS(4).Weight=3
.BORDERS(4).ColorIndex=1
ENDWITH
*___________________*
*-----------------------------------
*-Colocando valores de la Tabla*
select paty
go top
store 0 to contador
do while not eof()
.Range("A"+ALLTRIM(STR(LINEA+contador))).Select
.ActiveCell.FormulaR1C1 = paty.nombre_sup
.Range("B"+ALLTRIM(STR(LINEA+contador))).Select
.ActiveCell.FormulaR1C1 = ALLTRIM(paty.no_fac_sup)
.Range("C"+ALLTRIM(STR(LINEA+contador))).Select
.ActiveCell.FormulaR1C1 = paty.fecha
.Range("D"+ALLTRIM(STR(LINEA+contador))).Select
.ActiveCell.FormulaR1C1 = paty.num_piezas
.Range("E"+ALLTRIM(STR(LINEA+contador))).Select
.ActiveCell.FormulaR1C1 = paty.kgs_bruto
.Range("F"+ALLTRIM(STR(LINEA+contador))).Select
.ActiveCell.FormulaR1C1 = paty.vol_m3
.Range("G"+ALLTRIM(STR(LINEA+contador))).Select
.ActiveCell.FormulaR1C1 = paty.valor_usd
.Range("H"+ALLTRIM(STR(LINEA+contador))).Select
.ActiveCell.FormulaR1C1 = paty.tipo_merc
contador = contador + 1
skip
enddo
go top
.Range("A"+ALLTRIM(STR(LINEA))+":"+"H"+ALLTRIM(STR(LINEA+contador))).Select
OBJSELEC=.SELECTION()
WITH OBJSELEC.FONT
.BOLD=.T.
.NAME="Times"
.SIZE="8"
ENDWITH
*-Totales-*
.Range("D"+ALLTRIM(STR(LINEA+contador+2))+":"+"G"+ALLTRIM(STR(LINEA+contador+2))).Select
OBJSELEC=.SELECTION()
WITH OBJSELEC
.BORDERS(4).LineStyle=3
.BORDERS(4).Weight=3
.BORDERS(4).ColorIndex=1
ENDWITH
.Range("D"+ALLTRIM(STR(LINEA+contador+2))).Select
.ActiveCell.FormulaR1C1 = "=SUM(R[-"+alltrim(str(contador+2))+"]C:R[-2]C)"
.Range("E"+ALLTRIM(STR(LINEA+contador+2))).Select
.ActiveCell.FormulaR1C1 = "=SUM(R[-"+alltrim(str(contador+2))+"]C:R[-2]C)"
.Range("F"+ALLTRIM(STR(LINEA+contador+2))).Select
.ActiveCell.FormulaR1C1 = "=SUM(R[-"+alltrim(str(contador+2))+"]C:R[-2]C)"
.Range("G"+ALLTRIM(STR(LINEA+contador+2))).Select
.ActiveCell.FormulaR1C1 = "=SUM(R[-"+alltrim(str(contador+2))+"]C:R[-2]C)"
.Range("G"+ALLTRIM(STR(LINEA+contador+2))).Select
OBJSELEC=.SELECTION()
OBJSELEC.NUMBERFORMAT="$#,##0.00"
*---Dando Formato a las Celdas que quedaron mal---*
.Range("B13"+":"+"B"+ALLTRIM(STR(LINEA+contador))).Select
OBJSELEC=.SELECTION()
OBJSELEC.HORIZONTALALIGNMENT=4
.Range("G13"+":"+"G"+ALLTRIM(STR(LINEA+contador))).Select
OBJSELEC=.SELECTION()
OBJSELEC.NUMBERFORMAT="$#,##0.00"
*_________________________________________________*
.range("A1").select
ENDWITH
Muchisimas Gracias, eso era lo que estaba buscando.. si tienes otros comandos para centrado en varias celdas a la vez, justificación de texto y combinación de texto te lo agradezco
Añade un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje
¿No es la pregunta que estabas buscando?
Puedes explorar otras preguntas del tema Visual Fox Pro o hacer tu propia pregunta: