SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: Ana_22 en Viernes 5 de Noviembre de 2010, 16:59

Título: EXPORTAR A EXCEL DESDE C++
Publicado por: Ana_22 en Viernes 5 de Noviembre de 2010, 16:59
Hola gente. Necesito exportar a Excel desde mi programa de c++ builder la consulta que hay en un DBGrid. Probé con algunos ejemplos q hay en este foto, pero me da error en la librería sysvari.h. Observe que en la pestaña Servers hay componentes como ExcelApplication o WordApplication, y no tengo idea de como usarlos o para que sirven. Y tambien me interesa saber como exportar a word, el que tenga informacion del tema ... y me puede ayudar... se lo agradezco!!
Saludos.
Título: Re: EXPORTAR A EXCEL DESDE C++
Publicado por: softevolutions en Viernes 5 de Noviembre de 2010, 18:27
Para exportar a word, usa dos componentes TWordApplication y TWordDocument

Código: C++
  1.   OleVariant WordVisible = True;
  2.   OleVariant NewDoc = False;
  3.   OleVariant SoloLectura = False;
  4.   OleVariant WordFile = <nombre del fichero que vas a modificar.doc>;
  5.   OleVariant ItemIndex = 1;
  6.  
  7.   //creo los componentes
  8.   TWordDocument *WordDocument = new TWordDocument(this);
  9.   TWordApplication *WordApplication = new TWordApplication(this);
  10.  
  11.   WordApplication->Connect();
  12.  
  13.   WordApplication->Documents->Add(WordFile, NewDoc, EmptyParam, EmptyParam);
  14.   WordDocument->ConnectTo(WordApplication->Documents->Item(ItemIndex));
  15.  
  16.   //creo el codigo de mi marcador y lo asigno
  17.   //recuerda que en documento de word que vayas a usar, estos marcadores sirven para sustituirlos por el texto que indiques
  18.   int mimarcador;
  19.   mimarcador = 1;
  20.  
  21.   WordDocument->Bookmarks->Item(OleVariant(mimarcador))->Select();
  22.   WordApplication->Selection->set_Text(WideString("texto que quiero poner").c_bstr());
  23.  
  24.   //cierro la conexion con el documento
  25.   WordApplication->Disconnect();
  26.  
  27.  
  28.  

Ya se que no es mucho, pero puedes empezar por aquí.
Yo lo estoy usando en una aplicación y me funciona muy bien, pero claro, un poco mas extenso y para mi caso particular.

Espero que te sirva para ir empezando
Título: Re: EXPORTAR A EXCEL DESDE C++
Publicado por: Ana_22 en Lunes 8 de Noviembre de 2010, 13:52
Gracias por tomarte el tiempo de responderme! Probé tu ejemplo pero me tira un error en la linea: OleVariant WordFile = <archivo>; probé con comillas simples, dobles y de varias formas mas, pero no hay caso  :angry:  Me tira error de sintaxis. Además lo que yo quiero es abrir un documento nuevo de word o excel y no modificar uno q ya existe.
DE nuevo Gracias!
Título: Re: EXPORTAR A EXCEL DESDE C++
Publicado por: softevolutions en Lunes 8 de Noviembre de 2010, 16:07
Esto no da ningun error:

OleVariant WordFile = "nombre del fichero que vas a modificar.doc";


Una pregunta... ¿quieres  modificar un word ya creado?, ¿y no te sirve este ejemplo?, ¿que quieres hacer entonces?

Este ejemplo te permite modificar una plantilla de word.

Intenta ser un poco más específica de lo que necesitas hacer en word para ver si podemos ayudarte
Título: Re: EXPORTAR A EXCEL DESDE C++
Publicado por: Ana_22 en Lunes 15 de Noviembre de 2010, 12:42
Lo que quiero hacer es: Al hacer clic en un botón que se abra un nuevo documento de Excel o Word (Documento1.doc o Libro1.xls) con los datos que hay en una base de datos.
Solucioné el error anterior, asi: OleVariant WordFile = AnsiString("NuevoDocumento.doc"). Pero sigue tirando error en las lineas siguientes y ni idea :wacko:
Espero q ahora se entienda un poco mejor.
Saludos
Título: Re: EXPORTAR A EXCEL DESDE C++
Publicado por: victorivan en Miércoles 8 de Diciembre de 2010, 01:51
ana-22, solucionastes tu problema de exportar de:
DBGRID A EXCEL

Si no es asi,me comentas para enviartealguna solucion.

Att

Victor
Título: Re: EXPORTAR A EXCEL DESDE C++
Publicado por: Ana_22 en Martes 21 de Diciembre de 2010, 15:00
HOla Victor. NO pude solucionar el problema todavía  :( . Disculpa la demora, no habia visto el mensaje.
Título: Re: EXPORTAR A EXCEL DESDE C++
Publicado por: victorivan en Martes 21 de Diciembre de 2010, 19:10
Ana_22

 No es normal realizar una exportación desde un DBGrid, pero si funciona.

Te adjunto un pequeño programa que te indica, un metodo para realizar esta exportación,

Existen unos archivos .H, estas son librerias de aglunas funciones que recopile y separa por
funciones, para que no te compliques, sigue solo la modulos que llamo y entenderas.

Lo primero que debes realizar, es asignar una DB y Tabla al Table1, y claro activar dicha tabla, luego
ejecutas.

Suerte... me comentas
Att,

Victo
Título: Re: EXPORTAR A EXCEL DESDE C++
Publicado por: Ana_22 en Miércoles 22 de Diciembre de 2010, 13:55
Muchas gracias!! :rolleyes:  por tomarte el tiempo para contestarme y para mandarme un ejemplo. Ya lo estoy viendo, despues te cuento como me fue.