Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Servers
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-10-2003
chutipascal chutipascal is offline
Miembro
 
Registrado: may 2003
Ubicación: Mallorca
Posts: 194
Poder: 21
chutipascal Va por buen camino
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..
__________________
Si tu foto no es buena, es que no estabas lo suficientemente cerca.

Robert Cappa (fotografo)
Responder Con Cita
  #2  
Antiguo 22-10-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
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.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 22-10-2003
chutipascal chutipascal is offline
Miembro
 
Registrado: may 2003
Ubicación: Mallorca
Posts: 194
Poder: 21
chutipascal Va por buen camino
Gracias Marcos, esto es mejor que un manual.
__________________
Si tu foto no es buena, es que no estabas lo suficientemente cerca.

Robert Cappa (fotografo)
Responder Con Cita
  #4  
Antiguo 22-10-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
  #5  
Antiguo 31-05-2010
Rowerto Rowerto is offline
Miembro
 
Registrado: abr 2010
Posts: 20
Poder: 0
Rowerto Va por buen camino
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!!

Última edición por Rowerto fecha: 31-05-2010 a las 16:23:00.
Responder Con Cita
  #6  
Antiguo 31-05-2010
Avatar de Faust
Faust Faust is offline
Miembro
 
Registrado: abr 2006
Ubicación: México D.F.
Posts: 930
Poder: 19
Faust Va por buen camino
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.
__________________
Herr Heins Faust

Última edición por Faust fecha: 31-05-2010 a las 17:18:48.
Responder Con Cita
  #7  
Antiguo 31-05-2010
Avatar de Faust
Faust Faust is offline
Miembro
 
Registrado: abr 2006
Ubicación: México D.F.
Posts: 930
Poder: 19
Faust Va por buen camino
Cita:
Empezado por roman Ver Mensaje
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.
__________________
Herr Heins Faust
Responder Con Cita
  #8  
Antiguo 31-05-2010
Rowerto Rowerto is offline
Miembro
 
Registrado: abr 2010
Posts: 20
Poder: 0
Rowerto Va por buen camino
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.
Responder Con Cita
  #9  
Antiguo 31-05-2010
Avatar de Faust
Faust Faust is offline
Miembro
 
Registrado: abr 2006
Ubicación: México D.F.
Posts: 930
Poder: 19
Faust Va por buen camino
Cita:
Empezado por Rowerto Ver Mensaje
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.
__________________
Herr Heins Faust

Última edición por Faust fecha: 31-05-2010 a las 18:23:54.
Responder Con Cita
  #10  
Antiguo 01-06-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #11  
Antiguo 01-06-2010
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Eso mismo hago yo.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #12  
Antiguo 01-06-2010
Avatar de Faust
Faust Faust is offline
Miembro
 
Registrado: abr 2006
Ubicación: México D.F.
Posts: 930
Poder: 19
Faust Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
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 Ver Mensaje
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
__________________
Herr Heins Faust
Responder Con Cita
  #13  
Antiguo 02-06-2010
Rowerto Rowerto is offline
Miembro
 
Registrado: abr 2010
Posts: 20
Poder: 0
Rowerto Va por buen camino
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:
Responder Con Cita
  #14  
Antiguo 02-06-2010
Avatar de Faust
Faust Faust is offline
Miembro
 
Registrado: abr 2006
Ubicación: México D.F.
Posts: 930
Poder: 19
Faust Va por buen camino
Cita:
Empezado por Rowerto Ver Mensaje
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
__________________
Herr Heins Faust
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 07:23:28.


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
Copyright 1996-2007 Club Delphi