Consulta de exportación a excel

Hola amigo:
Tengo un problema con exportar un reporte a excel, quiero que contenga un logo y controlar el ancho de cada columna, colores y demás, ¿cua les la mejor forma?, ¿Tienes algo que haga eso? Y que una vez generado el archivo excel me salga una pantalla donde me pida un mail al cual quiero enviar este archivo excel.
Gracias

1 Respuesta

Respuesta
1
Este código para adjuntar archivo:
Local lcPath, hWindow, lcDelimiter, lcFiles, lcMsgSubj
lcPath = Sys(5) + Sys(2003)
lcDelimiter = ";"
lcFiles = "C:\lista_precios.txt"
lcMsgSubj = "Adjuntamos Lista de Precios Actualizada al "+xfecha
Handle = GetActiveWindow()
= MAPISendDocuments ( Handle, lcDelimiter, lcFiles, lcMsgSubj, 0)
Set Default To (lcPath)
Procedure FindWindow
Declare Integer GetActiveWindow In user32
Declare Integer MAPISendDocuments In mapi32;
INTEGER ulUIParam, String lpszDelimChar,;
STRING lpszFullPaths, String lpszFileNames,;
INTEGER ulReserved
Endproc
Para consultar otras cuestiones, genera una nueva consulta de tema.
Éxitos !
Amigo, en que parte me pide el mail para mandarlo, puesto que quiero que se genere el .xls y en vez de ir al excel me salga una pantalla que me pida un mail y presinando un botón se envíe a ete mail el archivo .xls generado.
Por otra parte amigo, ¿tu sabes porque en unas maquinas los reportes salen en idioma ingles y en otras no?, cuando uso cmonth() me salen en algunas en español y en otras en ingles, pero de ambas en el windows la fecha se muestra en español, ¿cómo hago para que en todas me salaga en español?
Muchas gracias
Este es tu día de suerte !
Tengo exactamente lo que necesitas:
Local lcWord, lcFileName
Close database
lcFileName="C:\preciosmin.xls" && este es el nombre del libro de Excel
mresp=MessageBox("Está su versión de Excel en idioma Inglés ?",547,"Generación de Planilla")
do case
case mresp=2
return
case mresp=6
lcword="Sheet1"
case mresp=7
lcword="Hoja1"
endcase
*
IF ! USED("C:\distribuidora\Bases\articulos")
USE C:\distribuidora\Bases\articulos SHARE
set filter to existe
set order to descrip &&ALIAS ftempo
ENDIF
L=3
T=7
*!* SELECT * ;
*!* FROM ftempo ;
*!* INTO CURSOR ventas
*!* SELECT Ventas
* Creo el objeto de Excel
ExcObj=CREATEOBJECT("EXCEL.APPLICATION")
ExcObj.VISIBLE=.T.
ExcObj.WORKBOOKS.add
ExcObj.sheets(lcWord).Select
Excobj.sheets(lcWord).Name= "Precios"
* Encabezados *
ExcObj.RANGE("A2:I3").SELECT
ExcObj.RANGE("A2:I3").FONT.NAME="Times New Roman"
ExcObj.RANGE("A2:I3").FONT.BOLD=.f.
ExcObj.RANGE("A2:I3").FONT.SIZE=16
ExcObj.RANGE("A2:I3").VerticalAlignment = 3
*
ExcObj.RANGE("A2:J2").SELECT
ExcObj.selection.Borders(3).weight=4 && Derecho
ExcObj.RANGE("A2").SELECT
ExcObj.ACTIVECELL.VALUE= "DISTRIBUIDORA CLARA"
ExcObj.RANGE("B3").SELECT
ExcObj.ACTIVECELL.FONT.BOLD=.t.
ExcObj.ACTIVECELL.FONT.SIZE=16
ExcObj.ACTIVECELL.VALUE= "LISTADO DE PRECIOS Y COSTOS MINORISTAS"
ExcObj.RANGE("A4").SELECT
ExcObj.ACTIVECELL.FONT.SIZE=9
ExcObj.ACTIVECELL.VALUE=" "+transform(datetime(),"@E") &&""
ExcObj.RANGE("E4").SELECT
ExcObj.ACTIVECELL.FONT.BOLD=.t.
ExcObj.ACTIVECELL.FONT.SIZE=13
*ExcObj.ACTIVECELL.VALUE="Versión Actual : "+dtoc( gdFecVerL ) &&""
ExcObj.Rows("5:5").RowHeight = 0.75 && Cambiamos el alto de la fila
*ExcObj.Rows("A").ColumnWidth = 36
ExcObj.Columns("A").ColumnWidth = 45
ExcObj.RANGE("A6:J6").SELECT
ExcObj.selection.Borders(3).weight=4 && Derecho
ExcObj.selection.font.bold=.t.
ExcObj.selection.font.size=10
ExcObj.selection.HorizontalAlignment = 3
ExcObj.RANGE("A7:J7").SELECT
ExcObj.selection.Borders(3).weight=4 && Derecho
ExcObj.RANGE("A6").SELECT
ExcObj.ACTIVECELL.VALUE="Descripción"
ExcObj.RANGE("B6").SELECT
ExcObj.ACTIVECELL.VALUE="Pr. Costo"
ExcObj.RANGE("C6").SELECT
ExcObj.ACTIVECELL.VALUE="Pr. Lista"
ExcObj.RANGE("D6").SELECT
ExcObj.ACTIVECELL.VALUE="% Estimado"
ExcObj.RANGE("E6").SELECT
ExcObj.ACTIVECELL.VALUE="% Real"
* Aqui se carga el detalle
GO TOP
SCAN WHILE !EOF()
L=L+1
T=T+1
DO Detalle
ENDSCAN
*sele ftempo
*use
*erase ventas.dbf
* guardo el Libro *
*---------------------------
* ChDir "C:\"
* defino el lugar donde se guardara el libro generado
if file (lcFileName) && verifico si ya existe y borro una version previa
erase &lcFileName
endif
ExcObj.ActiveWorkbook.saveas( lcFileName )
ExcObj.ActiveWorkbook.close
ExcObj.quit
rele ExcObj
return
PROCEDURE DETALLE
CEL="A"+ALLT(STR(T))
ExcObj.RANGE(CEL).SELECT
ExcObj.ACTIVECELL.VALUE=ALLT(descrip)
CEL="B"+ALLT(STR(T))
ExcObj.RANGE(CEL).SELECT
ExcObj.ACTIVECELL.VALUE=ALLT(str(precio_costo,7,2))
* ExcObj.ACTIVECELL.VALUE=iif (!empty(fecvers),"'"+ALLT(dtoc(fecvers))," ")
CEL="C"+ALLT(STR(T))
ExcObj.RANGE(CEL).SELECT
ExcObj.ACTIVECELL.VALUE=ALLT(str(precio_lista,7,2))
* ExcObj.ACTIVECELL.VALUE=iif(ALLT(upper(tamarc1))="NO","Sin cierres","'"+upper( ALLT( nomarc1 )))
CEL="D"+ALLT(STR(T))
ExcObj.RANGE(CEL).SELECT
ExcObj.ACTIVECELL.VALUE=ALLT(str(porcentaje,3,3))
* ExcObj.ACTIVECELL.VALUE=iif( ALLT( upper( tamarc1 ))="NO","desde","'"+allt(tamarc1) )
CEL="E"+ALLT(STR(T))
ExcObj.RANGE(CEL).SELECT
ExcObj.ACTIVECELL.VALUE=ALLT(str(porcenreal,3,3))
* ExcObj.ACTIVECELL.VALUE=iif( ALLT( upper( tamarc1 ))="NO","'"+dtoc(gdFecVerL-5),"'"+dtoc(fecarc1) )
Return

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas