Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   como manipular excel (https://www.clubdelphi.com/foros/showthread.php?t=25799)

carlos gonzalez 04-10-2005 17:00:43

como manipular excel
 
Hola amigos tengo una duda ojala puedan ayudarme, desarrollo un sistema que exporta datos a excel, pero quisiera darle mejor presentacion. yo ago lo sig

ExcelWorkSheet1.Cells.Item[5,5].Value:='PROGRAMA DE PRODUCCION COSTURA
ExcelWorkSheet1.Cells.Item[6,1].Value:='CONTROL DE PRODUCCION';
ExcelWorkSheet1.Cells.Item[6,6].Value:=FECHA;

quisiera saber como hacerle para

poner el texto en negritas
cambiar el color de una celda
y cambiar el ancho de varias columnas por ejemplo la primera debe de tener el doble del ancho que el resto de ellas.

Si alguien sabe como hacer esto y lo quiere compartir conmigo se los voy agradecer bastante.

su amigo charles.

Neftali [Germán.Estévez] 04-10-2005 18:01:10

Aquí tienes algunos ejemplos para formatear celdas:
http://www.djpate.freeserve.co.uk/Au...tm#FormatRange

Y aquí también:
http://community.borland.com/article...,10128,00.html

roman 04-10-2005 18:09:17

Algo que yo hago es crear una plantilla con Excel dándole el formato que más me guste y con Delphi básicamente sólo relleno las celdas.

// Saludos

lucasarts_18 04-10-2005 18:22:59

Cita:

Empezado por roman
Algo que yo hago es crear una plantilla con Excel dándole el formato que más me guste y con Delphi básicamente sólo relleno las celdas.

Román, usas algún componente especial, o solo a través de código, estuve investigando como hacerlo pero finalmente termine haciendolo en VBA...:(.

Saludos...

roman 04-10-2005 18:45:54

Cita:

Empezado por lucasarts_18
pero finalmente termine haciendolo en VBA...:(.

¡Hombre! ¿Y esto lo dices así en público, sin más? :D

A lo que me refería es a que la plantilla la hago con el mismo Excel, sin vba ni nada por el estilo. El rellenado de celdas lo hago una de dos (que en realidad es casi lo mismo), o con las componentes de la paleta Servers o creando yo mismo un objeto ExcelApplication. No sé bien por donde va tu duda; hay en los foros muchos ejemplo de cómo rellenar celdas de una hoja de Excel desde Delphi. Pero si explicas más veremos la forma de que vb no vuelva a pronuciarse en estos lares. :D

// Saludos

lucasarts_18 04-10-2005 20:10:53

Cita:

Empezado por roman
¡Hombre! ¿Y esto lo dices así en público, sin más? :D

mmm, me morderé la lengua antes de pronunciarlo nuevamente,jeje:D
Cita:

Empezado por roman

El rellenado de celdas lo hago una de dos (que en realidad es casi lo mismo), o con las componentes de la paleta Servers o creando yo mismo un objeto ExcelApplication. No sé bien por donde va tu duda.

Esta es mi duda, cual es la diferencia entre usar los componentes o crear un ExcelApplication, con este último se usa la tecnología OLE ?.
Ó un ExcelApplication es una instancia de la clase del componente ?? :confused:

Nunca antes me había topado con esto, de ahí que viene mi desorientación...

Saludos...:p

roman 04-10-2005 21:00:18

Hasta donde yo entiendo es básicamente lo mismo. En ambos casos accedes a los métodos y propiedades que ofrece la interfaz ActiveX de Excel. Deborah Pate, en el artícula que te refirió Neftalí explica hasta cierto punto las diferencias.

Cuando usas Variants para acceder a Excel, careces totalmente de la ayuda del compilador ya que éste desconoce si el objeto ActiveX realmente acepta las funciones que intentas utilizar y/o los parámetros que usas. Este uso de Variants es lo que Deborah llama Late Binding a diferencia del Early Binding en donde se hace uso de una biblioteca de tipos que puedes crear tú mismo con la opción Project|Import Type Library. Esta biblioteca básicamente le da al compilador la información de como debe compilar las llamadas a funciones y por esto se supone que el acceso es más eficiente. Las componentes de la paleta Servers no son más que "wrappers" de esta biblioteca de tipos, es decir, engloban los métodos, propiedades y objetos que proporciona la biblioteca en componentes Delphi.

Deborah recomienda usar siempre el Early Binding. Sin embargo, personalmente uso el Late Binding principlamente por una razón: Infinidad de métodos de Excel usan parámetros por defecto que normalmente no es necesario proporcionar. Al usar la biblioteca de tipos o las componentes de la paleta Servers, estás obligado a pasar todos los parámetros. Compara por ejemplo estas dos formas de guardar un archivo:

Código Delphi [-]
// usando componente ExcelWorkbook
  ExcelWorkbook1.SaveAs(
    'archivo.xls',
    EmptyParam, EmptyParam, EmptyParam,
    EmptyParam, EmptyParam, EmptyParam,
    EmptyParam, EmptyParam, EmptyParam,
    EmptyParam, EmptyParam);

// usando Variants
WorkBook.SaveAs('archivo.xls');

Claro que si el procesamiento que requieres hacer de un archivo de Excel es muy extenso entonces sí valdría más usar el Early Binding para mayor rapidez.

// Saludos

lucasarts_18 04-10-2005 21:15:08

Cita:

Empezado por roman
Hasta donde yo entiendo es básicamente lo mismo. En ambos casos accedes a los métodos y propiedades que ofrece la interfaz ActiveX de Excel

Aquí quería llegar, Roman, como siempre, muy sabias tus palabras, ahora me queda mas claro el asunto.
Por cierto, no encuentro la documentación de la paleta servers en delphi 7.

Saludotes....:cool:

roman 04-10-2005 21:20:53

Cita:

Empezado por lucasarts_18
Por cierto, no encuentro la documentación de la paleta [color=Blue]servers[color=Black] en delphi 7.

Ni la encontrarás. Hay muy poca documentación al respecto. Páginas como la de Deborah Pate son de las pocas. Algo que sirve mucho es consultar la ayuda de Excel que se incluye con Office (hay que añadir la parte de Excel para VBA o algo así al instalar) y muchas veces, para saber cómo se hace algo, lo que sirve es grabar una macro en Excel que haga lo que deseas y ver su código en el editor de Visual Basic que tiene Excel.

pd: las letras pequeñas son adrede.

// Saludos

lucasarts_18 04-10-2005 21:46:20

Cita:

Empezado por roman
lo que sirve es grabar una macro en Excel que haga lo que deseas y ver su código en el editor de Visual Basic que tiene Excel.

Presisamente así lo estaba haciendo, pero ahora LO HARÉ EN DELPHI,CLARO ESTÁ....


Gracias por todo Roman...:D


La franja horaria es GMT +2. Ahora son las 06:07:25.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi