Ir al contenido


Foto

Excel Automation y sus "detallines"... (Delphi 6, Windows XP)


  • Por favor identifícate para responder
2 respuestas en este tema

#1 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1.750 mensajes
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Escrito 02 agosto 2011 - 04:48

Buceando desesperadamente en busca de respuestas, resulta que encontré un post de KingI sobre la automatización de Excel, o "automation" (¡¡Qué fea palabra, verdaderamente!!), el cual resolvió el 90% de mi problema..., el 10% que falta es el que me preocupa.

A saber, algunas preguntas fundamentales:
  • Necesito incluir algunas imágenes en el archivo resultante.
  • El código EXACTO para crear un archivo con nombre y ruta. El que proporcionó KingI no funciona como debería.
  • ¿Cómo puedo hacer girar un texto en una celda?
  • ¿Cómo puedo incluir una fórmula en una celda? Específicamente, una Suma() de un rango.
Muchas gracias por su colaboración, como siempre, salvando el cuello de uno que otro programador Delphi.
  • 0

#2 andres1569

andres1569

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 431 mensajes

Escrito 02 agosto 2011 - 10:06

Hola Felipe, espero acertar con la pregunta nº 2, aunque no he trabajado con los componentes de automatización del Office, sí lo he hecho mediante objetos OLE Variant, que es una forma más rudimentaria, digamos.
Para guardar un archivo empleaba el comando SaveAs(FileName), supongo que con estos componentes sería algo así como:

ExcelApplication1.SaveAs('C:\Mis archivos\Excel1.xls');

Un saludo
  • 0

#3 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 02 agosto 2011 - 10:35

Para la duda número 1:



delphi
  1. procedure InsertarIMGExcel(ActiveSheet: OleVariant; RutaImagen: string: Altura, Tope: Integer);
  2. var
  3.   Picture: OleVariant;
  4. begin
  5.   Picture := ActiveSheet.Pictures.Insert(RutaImagen);
  6.   Picture.Width := Altura * Picture.Width / Picture.Height;
  7.   Picture.Height := Altura;
  8.   Picture.ShapeRange.Left := 0;
  9.   Picture.ShapeRange.Top := Tope;
  10.   Picture.Placement := xlMove;
  11. end;



Duda 4, simplemente haces lo siguiente:



delphi
  1. Sheet.Cells[i, 1] := '=Sum(A1:A10)';



Saludos.
  • 0




IP.Board spam blocked by CleanTalk.