Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Servers (https://www.clubdelphi.com/foros/forumdisplay.php?f=9)
-   -   Manual de programacion Excel (https://www.clubdelphi.com/foros/showthread.php?t=4630)

chutipascal 22-10-2003 14:08:50

Manual de programacion Excel
 
Hola,

¿Donde puedo encontrar un manual o ayuda de programación del Excel? Porque voy completamente a ciegas.....llamo a una hoja desde Delphi con XS := CreateOleObject('Excel.Application') inserto los datos...todo bien pero para formatear columnas colores y esas cosas no se que propiedades y metodos tocar.

Un saludo..

marcoszorrilla 22-10-2003 15:24:27

Mira a ver si con este código te puedes arreglar:
Código:


 // Margen, título y cabecera
 XlSheet.Cells[1,1].ColumnWidth := 5; // Ancho de la columna A

 // Ancho de las columnas
 XlSheet.Cells[1,2].ColumnWidth := 5;
 XlSheet.Cells[1,3].ColumnWidth := 28;
 XlSheet.Cells[1,4].ColumnWidth := 8;
 XlSheet.Cells[1,5].ColumnWidth := 10;
 XlSheet.Cells[1,6].ColumnWidth := 12;

 // Rango
 Range := XlSheet.Range['B2:F2']; // Asignar el rango

 Range.Font.Name  := 'Arial';
 Range.Font.Size  := 14;
 Range.Font.Color := clBlue;
 Range.RowHeight  := 21; // Altura de la fila
 // Range.Columns.AutoFit; // Ajustar las columnas automáticamente
 // Range.ColumnWidth := 25; // Ancho de las columnas para un rango determinado
 Range.Columns.Interior.ColorIndex := 19; // 1: Black; 2: White; 3: Red; 4: Lime;
                                          // 5: Blue; 6: Yellow; 7: Fuchsia; 8: Cyan
                                          // 9: Maroon; 10: Green; 11: Navy; 12: Olive
                                          // 13: Purple; 14: Teal; 15: Silver; 16: Gray
                                          // .......... bis 56 max.
 // Ejemplo de pasar los datos a una simple celda
 XlSheet.Cells[2,3] := 'Example of Microsoft Excel 97 from Delphi 32';
 XlSheet.Cells[3,6] := FormatDateTime('mm/dd/yyyy',Now);

Salut.

chutipascal 22-10-2003 16:44:25

Gracias Marcos, esto es mejor que un manual.

roman 22-10-2003 17:03:54

Otra fuente es la ayuda de VB para Excel incluida con Office. Ahí se detalla toda la jerarquía de objetos que se utilizan. En ocasiones hay que traducir un poco ya que lo que enVB se pone con corchetes a veces en Delphi se pone con paréntesis o lo que en VB se deja como parámetros opcionales en Delphi son obligatorios y tiene uno que estar averiguando qué poner en ellos. Pero básicamente da una idea bastante buena de lo que puede hacerse y cómo puede hacerse.

// Saludos

Rowerto 31-05-2010 16:12:14

Nas.
Se que el hilo es antiguo pero he preferido resucitarlo a abrir otro mas, que al final es un coñazo.

La cosa es que tengo un programita hecho para que recoja la informacion de una stringgrid y lo exporte a una excel. Todo ok salvo por un pequeño detalle que no soy capaz de configurar.
Quiero que la primera columna tenga el texto a la derecha y el resto de columnas centradas.
He hecho una macro y el codigo VB que me da para esas operaciones es:

Código:

Columns("A:A").Select
    With Selection
        .HorizontalAlignment = xlRight

Columns("B:H").Select
    With Selection
        .HorizontalAlignment = xlCenter

Yo he intentado adecuar ese codigo a mi aplicacion de la siguiente forma

Código Delphi [-]
ws.range['A:A'].select.selection.horizontalalignment := xlRight;

donde ws := ExcelDoc.ActiveSheet;

pero al compilar me da el siguiente error:

Código:

[Error] PUnion.pas(383): Undeclared identifier: 'xlRight'
Alguien me puede hechar una mano, que ando un poco perdido? Gracias de antemano!!

Faust 31-05-2010 17:11:24

Recuerdo que alguna vez por el Club Delphi recomendaron esta página, me fue de mucha ayuda al programar un reporteador que requería hacerse en excel y con formato de celdas y etc, etc. Ojalá te sirva.

Saludos.

Faust 31-05-2010 17:21:02

Cita:

Empezado por roman (Mensaje 18427)
Otra fuente es la ayuda de VB para Excel incluida con Office. Ahí se detalla toda la jerarquía de objetos que se utilizan. En ocasiones hay que traducir un poco ya que lo que enVB se pone con corchetes a veces en Delphi se pone con paréntesis o lo que en VB se deja como parámetros opcionales en Delphi son obligatorios y tiene uno que estar averiguando qué poner en ellos. Pero básicamente da una idea bastante buena de lo que puede hacerse y cómo puede hacerse.

// Saludos

Ah lo olvidaba, me sirvió de mucha ayuda un manual de Macros en Excel, para identificar objetos y demás cosillas de los libros de excel, es de la desaparecida página cibercursos.net, pero si no hay problema lo puedo subir al ftp del club o te lo mando por correo.

Rowerto 31-05-2010 18:03:49

Gracias por la rapidez, Faust.
De todas formas en la pagina que me pusiste aparece esto:

Código Delphi [-]//To format a range in the 'Text' style, aligned right
//Weirdly enough, to give a range a 'text' style you have to set its NumberFormat property to '@':
with
WS.Range['A1', 'M10'] do
begin
NumberFormat := '@';
HorizontalAlignment := xlHAlignRight;
end;


Lo varie para el mio, cambiando lo del formato numero que comentan en los comentarios y poniendo lo de xlHAlignRight, pero el error que me da es exactamente el mismo.
Si puedes subirlo aqui te lo agradeceria (yo y seguramente algunos mas), y si no mandalo a mi cuenta de este club.

Faust 31-05-2010 18:16:13

Cita:

Empezado por Rowerto (Mensaje 365740)
Código:

[Error] PUnion.pas(383): Undeclared identifier: 'xlRight'
Alguien me puede hechar una mano, que ando un poco perdido? Gracias de antemano!!

Ese error puede deberse a que la definición de xlRight se encuentra en otro *.pas, prueba poner en el uses alguna de las siguientes librerías que no me acuerdo cual lo contiene...

Código Delphi [-]
uses  
  ComObj, ActiveX, Excel_TLB;

Voy más por la última Excel_TLB;

En cuanto al manual de macros en Excel que voy a subir no sé si pueda violar derechos de autor al subirlo, deja lo checo y si se puede lo subo al ftp del club.

Edito: Acabo de ver que en la página que te pasé hay algunos ejemplos al final de cada sección, checa si están disponibles y si te sirven.

Edito de nuez... en mi Delphi 7 enterprise cuando lo instalé elegí la opción de instalar la paleta servers y al añadir los objetos ExcelApplication, ExcelWorkBook y ExcelWorkSheet me añade al uses la unidad ExcelXP, donde viene definido xlRight, pero si es alguna versión anterior y no tienes la paleta servers quizás sea alguna de las anteriores.

Neftali [Germán.Estévez] 01-06-2010 10:28:38

Yo a veces uso como pista las propias macros de Excel y Word.
Programas una Macro con lo que quieres hacer y luego en el editor de macros revisas el código generado. Eso te da una idea de métodos y fiunciones existentes que te pueden servir.

A partir de ahí busca en la ayuda o en MSDN.

marcoszorrilla 01-06-2010 11:26:30

Eso mismo hago yo.

Un Saludo.

Faust 01-06-2010 16:54:32

Cita:

Empezado por Neftali (Mensaje 365811)
Yo a veces uso como pista las propias macros de Excel y Word.
Programas una Macro con lo que quieres hacer y luego en el editor de macros revisas el código generado. Eso te da una idea de métodos y fiunciones existentes que te pueden servir.

A partir de ahí busca en la ayuda o en MSDN.


Cita:

Empezado por marcoszorrilla (Mensaje 365826)
Eso mismo hago yo.

Un Saludo.

Esas también sin buenas técnicas que suelo practicar, para quien requiera algún manualillo de macros en Excel para darse una idea en general sobre los objetos de Excel añadí el archivo ExcelMacros.zip al ftp del club, se encuentra en la sección Varios.

Saludos

Rowerto 02-06-2010 11:47:01

Gracias por las respuestas pero no he podido probar nada estos dias. En lo sucesivo posteare si encuentro la solucion.

Por cierto, lo de grabar una macro ya lo hice (lean el post, al menos)

Cita:

He hecho una macro y el codigo VB que me da para esas operaciones es:

Faust 02-06-2010 17:37:38

Cita:

Empezado por Rowerto (Mensaje 365942)
Por cierto, lo de grabar una macro ya lo hice (lean el post, al menos)

Sale amigo, no te desesperes y aquí te podemos echar una mano :)


La franja horaria es GMT +2. Ahora son las 03:31:18.

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