Ir al contenido


Foto

Mostrar hoja Excel en form


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

#1 ramiro_md

ramiro_md

    Advanced Member

  • Miembros
  • PipPipPip
  • 84 mensajes

Escrito 08 julio 2013 - 05:34

Buenas, sigo dando mis primeros pasos con Delphi. En este caso, atacando un nuevo requerimiento del proyecto que intento desarrollar.
La aplicación tiene que generar un archivo Excel (.xls), a medida el usuario vaya ingresando ciertos datos.

Logré crear archivos .xls sin mucho problema (por ahora) con TExcelApplication.

Luego se me ocurrió, mostrar en el formulario principal, la hoja de calculo donde el usuario esta trabajando, mejor dicho, donde el programa esta volcando los datos. Logré mostrar la hoja, mediante un TOleContainer. Pero como era mucho ya, y algo me tenía que pasar, el OleContainer no me muestra solo la hoja, sino que me muestra toda la ventanita Excel  ^o|

Entonces, mi pregunta, existe la forma de que solo muestre la hoja ?.

Como no soy muy bueno explicando, dejo una imagen de mi aplicación corriendo:
Imagen Enviada

Tal vez exportando el documento a un archivo de imagen ? y visualizando la imagen en el OleContainer..?
  • 0

#2 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 10 julio 2013 - 06:47

Saludos.

Sé que Delphi trae la paleta de componente para automatizar algunos software de ofimatica, no sé si en las versiones recientes aún cuenta con esta suite.

Pero tienes como alternativa (de pago):
- Tms Component
- DevExpress
- EMS Advanced Excel Report
  • 0

#3 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 11 julio 2013 - 01:33

Para que desaparezcan los botones prueba a cambiar "AllowInPlace" como en este código:



delphi
  1.   Ole:= TOleContainer.create(TmpForm);
  2.   Ole.Color:= clWhite;
  3.   Ole.Parent:= TmpForm;
  4.   Ole.SizeMode:= smStretch;
  5.   Ole.AutoActivate:= aaManual;
  6.   Ole.AllowInPlace:= false;
  7.   Ole.Align:= alClient;
  8.   Ole.AutoVerbMenu:= false;
  9.   Ole.BorderStyle:= bsNone;




  • 0

#4 ramiro_md

ramiro_md

    Advanced Member

  • Miembros
  • PipPipPip
  • 84 mensajes

Escrito 11 julio 2013 - 08:19

Gracias por la info. Cuando retome esa parte del proyecto voy a checkear sus sugerencias !.
  • 0

#5 ramiro_md

ramiro_md

    Advanced Member

  • Miembros
  • PipPipPip
  • 84 mensajes

Escrito 15 julio 2013 - 01:02

He logrado realizar mi cometido jeje, no de la mejor manera, por eso recurro nuevamente al foro.
El tema es así, puede evitar que se vea la toolbar de Excel. ¿Cómo?...conectando al OleContainer solo la hoja de trabajo (WorkSheet), de la siguiente manera:


delphi
  1. [...]
  2. {
  3. Globals.Xls es una variable global que contiene una clase "ayudante" creada por mi para escribir el documento según los requerimientos de mi cliente.
  4. Esta clase helper, contiene la instancia de TExcelApplication con la que trabajo. El método getHoja, me devuelve la WorkSheet donde estoy escribiendo. Luego la guardo en un directorio temporal en el disco.
  5. }
  6. Globals.Xls.getHoja().SaveAs('D:\test.xls',emptyParam,emptyParam,emptyParam,emptyParam,emptyParam,emptyParam,emptyParam,emptyParam,emptyParam);
  7. {
  8. Conecto el archivo guardado en el renglón anterior con el OleContainer y sale andando...solo muestra la rejilla del WorkSheet
  9. }
  10. OleContainer.CreateObjectFromFile('D:\test.xls',false);
  11. [...]



El detalle es que no quiero guardar el xls en disco, quiero conectar la hoja que devuelve getHoja() con el OleContainer, sin tener que conectarla desde disco.

Se puede realizar ?. Alguien sabe cómo ?.
Desde ya, muchas gracias !.
  • 0




IP.Board spam blocked by CleanTalk.