Dev - C++ - crear fichero excel desde c++ builder

 
Vista:

crear fichero excel desde c++ builder

Publicado por laura (4 intervenciones) el 03/04/2007 18:49:02
Hola a todos!!

Tengo hecha una aplicacion en c++ builder en la cual hago una consulta a una base de datos sql. Ahora lo que necesito es crear un fichero excel con los registros seleccionados. Alguien sabe como puedo hacer esto. Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:crear fichero excel desde c++ builder

Publicado por JuanC (17 intervenciones) el 03/04/2007 20:44:30
Te dejo 2 ejemplos, espero que se sirvan para algo... aunque sea para ver
por donde atacar el problema...


void __fastcall TForm1::Button1Click(TObject *Sender)
{
Variant Excel,Libro,Hoja,Celda;
Excel = CreateOleObject("Excel.Application");
Excel.OlePropertySet("Visible", true);
Libro=Excel.OlePropertyGet("Workbooks");
Libro.OleProcedure("Add");
Hoja=Libro.OlePropertyGet("Item",1);
Libro=Hoja.OlePropertyGet("Worksheets");
Libro.OlePropertyGet("Item",1).OlePropertySet("Name","The yellow book-keeping ");
Libro.OlePropertyGet("Item",2).OlePropertySet("Name","The red book-keeping ");
for (int j=1;j<3;j++)
{
Hoja=Libro.OlePropertyGet("Item",j);
for (int i=1;i<11;i++)
{
Hoja.OlePropertyGet("Cells").OlePropertyGet("Item",i,1).OlePropertySet("Value",i);
Hoja.OlePropertyGet("Cells").OlePropertyGet("Item",i,2).OlePropertySet("Value",i*5);
Celda=Hoja.OlePropertyGet("Cells").OlePropertyGet("Item",i,2);
Celda.OlePropertyGet("Font").OlePropertySet("Color",clBlue);
Celda.OlePropertyGet("Font").OlePropertySet("Bold",true);
Celda.OlePropertyGet("Interior").OlePropertySet("ColorIndex",9-3*j);
}
Hoja.OlePropertyGet("Cells").OlePropertyGet("Item",11,1).OlePropertySet("Value","=SUM(A1:A10)");
Hoja.OlePropertyGet("Cells").OlePropertyGet("Item",11,2).OlePropertySet("Value","=SUM(B1:B10)");
}
Excel.OlePropertySet("DisplayAlerts",false); //suppress the warning dialog on closing the server
Excel.OlePropertyGet("Workbooks").OlePropertyGet("Item",1).OleProcedure("SaveAs","test.xls");
//Excel.OleProcedure("Quit");
Excel=Unassigned;
}

Otro ejemplo:

Variant Ex,Wb,Sh1;
Ex = Variant::CreateObject("Excel.Application");
Ex.PG("WorkBooks").PR("Open", "c:\\book1.xls");
Wb = Ex.PG("ActiveWorkBook");
Sh1 = Wb.PG("ActiveSheet");
Edit1->Text = Sh1.PG("Cells", 1, 1).PG("Value");
for(int i=1; i<=10; i++)
for(int j=1; j<=10; j++)
Sh1.PG("Cells", i, j).PS("Value", i*100 + j);

Saludos desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:crear fichero excel desde c++ builder

Publicado por Laura (4 intervenciones) el 04/04/2007 08:25:10
Hola JuanC:

Gracias por los ejemplos que me has pasado, espero que me sean de gran ayuda, aunque solo sea para saber por donde empezar.

Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:crear fichero excel desde c++ builder

Publicado por victor garces (1 intervención) el 12/04/2007 04:32:24
Gracias, creo que me sera de gran utilidad!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:crear fichero excel desde c++ builder

Publicado por Juan Carlos Quevedo Lussón (1 intervención) el 19/03/2008 20:52:51
Hola comunidad:
Estuve viendo el ejemplo que aparece en el foro, y me quedan algunas dudas, cuales son las propiedades del EXCEL a las que yo puedo acceder mediante OLE, es decir a mi me gustaria poder crear una tabla, escribir en las celdas, cambiarle el color de relleno de las celdas, el color del borde, etc,
Celda.OlePropertyGet("Interior").OlePropertySet("ColorIndex",9-3*j); Veo que con este ejemplo se puede cambiar el color del interior (me imagino que este sea el de relleno), pero no encuentro una bibliografía que me indique como hacer para cambiar las otras propiedades, además de como crear graficos de diferentes tipos, me imagino que todo esto sea posible, estoy trabajando con C++ Builder 6.0.
Agradecería que si existe alguna bibliografia me la puedan facilitar. Estoy haciendo una applicacion para la gestion de un almacen y quiero que se puedan exportar los datos para el excel, y añadirles la parte de poder crear graficos, y que los datos se agrupen en tablas que se vean bien definidas.
Gracias de antemano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:crear fichero excel desde c++ builder

Publicado por Rolando Castillo (1 intervención) el 14/04/2008 22:04:54
Gracias Juan Carlos, pero el segundo ejemplo no lo he podido ejecutar pues me causa una excepción. Disculpa si te pregunto algo quizá obvio, pero es mi primer acercamiento a 'automation'. Hice los reemplazos siguientes que creo que se requerían (PG, PS, PR). ¿Son correctos?

Saludos, Rolando

Variant Ex,Wb,Sh1;
Ex = Variant::CreateObject("Excel.Application");
Ex.OlePropertyGet("WorkBooks").OleProcedure("Open", "c:\book1.xls");
Wb = Ex.OlePropertyGet("ActiveWorkBook");
Sh1 = Wb.OlePropertyGet("ActiveSheet");
Edit1->Text = Sh1.OlePropertyGet("Cells", 1, 1).OlePropertyGet("Value");
for(int i=1; i<=10; i++)
for(int j=1; j<=10; j++)
Sh1.OlePropertyGet("Cells", i, j).OlePropertySet("Value", i*100 + j);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:crear fichero excel desde c++ builder

Publicado por David (1 intervención) el 16/07/2008 18:15:34
Para este ejemplo que cabeceras deberiamos añadir. Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:crear fichero excel desde c++ builder

Publicado por nile (1 intervención) el 20/09/2008 02:46:21
Good example. Thanks. nsm
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:crear fichero excel desde c builder

Publicado por Rafa (1 intervención) el 28/02/2012 11:18:40
Hola a todos:

Me ha sido de mucha ayuda vuestro ejemplo, pero no funciona en XE2 y me he vuelto loco con OlePropertySet hasta dar con la SOLUCIÓN: Para que funcione con XE2 el segundo parámetro debe ir entre 'WideString( DATO ).Copy()'.

Ejemplo:
ANTES:
Hoja.OlePropertyGet("Cells").OlePropertyGet("Item",11,1).OlePropertySet("Value","=SUM(A1:A10)");
AHORA:
Hoja.OlePropertyGet("Cells").OlePropertyGet("Item",11,1).OlePropertySet("Value",WideString("=SUM(A1:A10)").Copy());

Saludos,

Rafa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

poner formato de celda desde codigo c++

Publicado por ismael (1 intervención) el 25/06/2014 19:52:57
Hola alguien sabra alguna forma para asignar un formato a una celda especifica. en este caso requiero poner la celda como tipo texto.


saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar