martes, 31 de marzo de 2009

Ejemplo de como generar archivo de Excel desde C++ Builder

Este  es ejemplo que encontre en la red muestra como crear un libro de Excel, llenar celdas, cambiar colores, etc.:

Pasos:



  • Crea una nueva aplicación en C++Builder

  • Pon un objeto botón TButton en el formulario (TButton está en la pestaña "Standard" de los objetos)

  • Pon un Objeto ExcelOLEObject en tu formulario (pestaña "Servers" de donde sacas los objetos)


Aqui una captura del CBuilder mientras pongo esos objetos que te menciono:
Imagen

Ahora, en el evento OnClick del botón pon el siguiente código:

Código:
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;

Corre el programa y ve lo que hace.

2 comentarios:

  1. Hola,

    Uso C++ Builder 4, pero no me aparece la pestaña "Servers" y por tanto no puedo añadir el objeto ExcelOLEObject

    ¿Como puedo añadir esa pestaña? ¿alguie me lo puede explicar?

    Muchas gracias

    ResponderEliminar
  2. Hola,

    No tengo la versión 4 para probar. Y si buscas en las demás pestañas? igual y por ahí está tirado ese objeto.

    Saludos!

    ResponderEliminar