Como mejorar archivos creados en Excel

Como mejorar archivos creados en Excel

Postby lubin » Tue Jan 15, 2013 3:12 pm

Buen dia para todos

Desearia saber mejorar la creacion de archivos en Excel, en general uso la creacion de Objeto de Excel como lo muesto mas abajo, todo sale bien y me crea el archivo sin problemas, incluso con mas de 100,000 registros , pero es una hoja sin ningun efecto y con columnas fijas, me gustaria saber como puedo hacer lo siguiente :

1. Darle un ancho determinado a la columna del Excel
2. Como darle formato con Dos decimales a las culumna con valor numerico:
3. Como ponerle bordes al contorno de Unrango de celdas
4. Cono darle color de Letra una determinada columna
5. Como cambiar el Tipo de Letra o el tamaño de letra

Exsiten otros metodos como crear archivos en Excel mas amigablemente,
Por lo que se la Clase TXls() no funciona bien para Office10 o con archivos muy extensos, se corta.

Gracias por sus futuros comentarios

Lubin




Code: Select all  Expand view

oExcel:=CreateObject( "excel.application" )
oExcel:DisplayAlerts=.F.
oBook :=oExcel:Workbooks:Add()
oSheet:=oExcel:ActiveSheet
xls_nFormat := oBook:Get("FileFormat")  

*Titulos de la Hoja
oSheet:Cells(1,01):Value = "MES      "
oSheet:Cells(1,02):Value = "Nr.DOCUM"
oSheet:Cells(1,03):Value = "FECHA   "
oSheet:Cells(1,04):Value = "IMPORTE"
oSheet:Cells(1,05):Value = "COBRADOR"

xls_cMemo   :=""           && Campo de memo para el Copy-Paste
xls_fila    :=xls_fila+1    && La fila Inicial donde se cargan las lineas en bloque
xls_linpaste:=xls_fila     && Ultima fila pegada

*Lopp del Detalle del reporte
DO WHILE .not. eof()
  xls_vLinea:={}  
  * Cargo los valores a Pegar en el excel
                                                     
  aadd(xls_vLinea, CPAGO->MES       )
  aadd(xls_vLinea, CPAGO->NUMREGOPE )
  aadd(xls_vLinea, CPAGO->FECCOM    )
  aadd(xls_vLinea, CPAGO->IMPORTE )
  aadd(xls_vLinea, CPAGO->COBRADOR )
                                                   
 *Vamos contando cuantas filas van CARGADAS
  xls_fila=xls_fila+1
  *&& funcion que concatena y pega en la hoja de calculo
  xls_cMemo := xls_Linea(oSheet,xls_cMemo,xls_vLinea,xls_fila,@xls_linpaste)  
  SKIP   && paso al siguiguiente  registro
ENDDO
xls_final(oSheet,xls_cMemo,xls_linpaste)

*Cierre de reporte
oBook:saveAS( xls_File, xls_nFormat )
oExcel:Quit()      
 
User avatar
lubin
 
Posts: 439
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru

Re: Como mejorar archivos creados en Excel

Postby lubin » Wed Jan 16, 2013 8:24 pm

Buenas Tardes con todos

Alguna idea respecto a esta consulta ... como crear y mejorar un archivo en Excel en formato , vista prestacion..

Gracias
User avatar
lubin
 
Posts: 439
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru

Re: Como mejorar archivos creados en Excel

Postby pgfdz » Wed Jan 16, 2013 9:02 pm

Hola.
No estoy muy ducho en esto, pero si he descubierto hoy, que los ficheros de la última versión de excel (xlsx) son en realidad ficheros .zip renombrados y que en su interior hay ficheros xml y mas cosas. Lo digo por si queréis echarles un vistazo y por que a lo mejor se puede hacer una clase para que directamente haga ficheros en ese formato. Puede resultar muchisimo más rápido.
Yo voy a echarles un ojo pero con muchos ojos a lo mejor llegamos antes.
Un saludo
Paco García
pgfdz
 
Posts: 145
Joined: Wed Nov 03, 2010 9:16 am

Re: Como mejorar archivos creados en Excel

Postby FiveWiDi » Wed Jan 16, 2013 11:33 pm

lubin wrote:Buen dia para todos

Desearia saber mejorar la creacion de archivos en Excel, en general uso la creacion de Objeto de Excel como lo muesto mas abajo, todo sale bien y me crea el archivo sin problemas, incluso con mas de 100,000 registros , pero es una hoja sin ningun efecto y con columnas fijas, me gustaria saber como puedo hacer lo siguiente :

1. Darle un ancho determinado a la columna del Excel
2. Como darle formato con Dos decimales a las culumna con valor numerico:
3. Como ponerle bordes al contorno de Unrango de celdas
4. Cono darle color de Letra una determinada columna
5. Como cambiar el Tipo de Letra o el tamaño de letra

Exsiten otros metodos como crear archivos en Excel mas amigablemente,
Por lo que se la Clase TXls() no funciona bien para Office10 o con archivos muy extensos, se corta.

Gracias por sus futuros comentarios

Lubin




Code: Select all  Expand view

oExcel:=CreateObject( "excel.application" )
oExcel:DisplayAlerts=.F.
oBook :=oExcel:Workbooks:Add()
oSheet:=oExcel:ActiveSheet
xls_nFormat := oBook:Get("FileFormat")  

*Titulos de la Hoja
oSheet:Cells(1,01):Value = "MES      "
oSheet:Cells(1,02):Value = "Nr.DOCUM"
oSheet:Cells(1,03):Value = "FECHA   "
oSheet:Cells(1,04):Value = "IMPORTE"
oSheet:Cells(1,05):Value = "COBRADOR"

xls_cMemo   :=""           && Campo de memo para el Copy-Paste
xls_fila    :=xls_fila+1    && La fila Inicial donde se cargan las lineas en bloque
xls_linpaste:=xls_fila     && Ultima fila pegada

*Lopp del Detalle del reporte
DO WHILE .not. eof()
  xls_vLinea:={}  
  * Cargo los valores a Pegar en el excel
                                                     
  aadd(xls_vLinea, CPAGO->MES       )
  aadd(xls_vLinea, CPAGO->NUMREGOPE )
  aadd(xls_vLinea, CPAGO->FECCOM    )
  aadd(xls_vLinea, CPAGO->IMPORTE )
  aadd(xls_vLinea, CPAGO->COBRADOR )
                                                   
 *Vamos contando cuantas filas van CARGADAS
  xls_fila=xls_fila+1
  *&& funcion que concatena y pega en la hoja de calculo
  xls_cMemo := xls_Linea(oSheet,xls_cMemo,xls_vLinea,xls_fila,@xls_linpaste)  
  SKIP   && paso al siguiguiente  registro
ENDDO
xls_final(oSheet,xls_cMemo,xls_linpaste)

*Cierre de reporte
oBook:saveAS( xls_File, xls_nFormat )
oExcel:Quit()      
 


A ver si estas líneas te ayudan, pruébalas.

// Line styles
#define xlContinuous 1
#define xlDash -4115
#define xlDashDot 4
#define xlDashDotDot 5
#define xlDot -4118
#define xlDouble -4119
#define xlSlantDashDot 13
#define xlLineStyleNone -4142


// Border positions
#define xlEdgeLeft 7
#define xlEdgeTop 8
#define xlEdgeBottom 9
#define xlEdgeRight 10

oExcel := CreateObject( "Excel.Application" )
oExcel:WorkBooks:Add()
oAS := oExcel:ActiveSheet()
oAs:Range( "C10" ):Value := "Marco"
oAs:Range( "C10" ):Borders( xlEdgeTop ):LineStyle := xlContinuous

oHoja:Rows( 2 ):Font:Bold := .T.

oHoja:Cells( 1, 4 ):Value := AMPAarra[2][3][1][13]

oHoja:Cells( 2, 1 ):AddComment()
oHoja:Cells( 2, 1 ):Comment:Text := "la data, fechita"

oHoja:Columns( 1 ):Set( "NumberFormat", "#,##0" )

oHoja:Columns( (nContador + 1 ) ):NumberFormat := "#.##0"

oHoja:Columns( (nContador + 1 ) ):NumberFormat := Lower( Set( _SET_DATEFORMAT ) )
oHoja:Columns( (nContador + 1 ) ):HorizontalAlignment := - 4152 //xlRight
oHoja:Cells( nFound, 3 ):HorizontalAlignment := - 4108 //Centrat
oHoja:Columns( (nContador + 1 ) ):Set( "NumberFormat", "@" )

oHoja:Cells( nFound, nCol ):Borders():LineStyle := 1
oHoja:Cells( nFound, nCol ):Borders( 8 ):LineStyle := 1

oHoja:Cells( nLinea, 3 ):AddComment()
oHoja:Cells( nLinea, 3 ):Comment:Text( AllTrim(oTdbfFamili:Obsefact) )

oHoja:Columns( 1 ):ColumnWidth := 6
oHoja:Columns( 2 ):ColumnWidth := 12
oHoja:Columns( 3 ):ColumnWidth := 10.5

oHoja:Cells( nLinea + 2, 8 ):NumberFormat := "#.##0,00"

oHoja:Cells( nLinea, 4 ):Font:Italic := .T.

Si descubres como cambiar el tipo de letra o colorear una celda o su contenido, dímelo por favor; yo no se hacerlo.
Un Saludo
Carlos G.

FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
FiveWiDi
 
Posts: 1078
Joined: Mon Oct 10, 2005 2:38 pm

Re: Como mejorar archivos creados en Excel

Postby lubin » Sat Jan 19, 2013 4:47 pm

Muchas gracias por el Dato

Voy a probarlo y les comento los resultados... y pues claro que si descrubro algo mas todos lo sabran

Lubin ..
User avatar
lubin
 
Posts: 439
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru

Re: Como mejorar archivos creados en Excel

Postby nageswaragunupudi » Tue Jan 22, 2013 11:21 am

I suggest if you study the code of METHOD ToExcel in xbrowse.prg, you will find answers to all your questions.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10295
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Como mejorar archivos creados en Excel

Postby lubin » Tue Jan 22, 2013 12:38 pm

Buena sugerencia
supongo que debe usar la misma metodologia

Gracias
User avatar
lubin
 
Posts: 439
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 32 guests