PDA

Ver la Versión Completa : Manual de programacion Excel


chutipascal
22-10-2003, 14:08:50
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:


// 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:


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

ws.range['A:A'].select.selection.horizontalalignment := xlRight;

donde ws := ExcelDoc.ActiveSheet;

pero al compilar me da el siguiente error:


[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 (http://www.djpate.freeserve.co.uk/Automation.htm) 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
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 [-] (http://www.clubdelphi.com/foros/#)//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
[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...


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
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.


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)

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

Faust
02-06-2010, 17:37:38
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 :)