Ver Mensaje Individual
  #4  
Antiguo 06-02-2010
_cero_ _cero_ is offline
Miembro
 
Registrado: abr 2007
Posts: 147
Reputación: 18
_cero_ Va por buen camino
Thumbs up

mmm los traes de un DBGrid, en ese caso se puede entender que los datos que quieres exportar vienen de una base de datos no?
Qué te parece este código.
Código:
    //declaracion de variables
    Variant XL,v0,v1,v2,v3;

    //abres excel
    XL=Variant::CreateObject("excel.application");
    //la abres con la ventana visivle o si tiene false la ventana es invisible
    XL.OlePropertySet("Visible", true);
    //abre el archivo C:\\mi_archivo.xls, se puede "SaveAs" en lugar de "Open" para crear en lugar de abrir
    XL.OlePropertyGet("Workbooks").OleProcedure("Open", "C:\\mi_archivo.xls");
    //abres la hoja1 en este caso llamada reporte
    v0=XL.OlePropertyGet("Sheets", "Reporte");
    v1=v0.OlePropertyGet("Cells");

    //aqui pones el nombre de las columnas que vas usar de la BD
    String columnas[6]={"col1", "col2", "col3", "col4", "col5", "col6"};

    //qq es un query ya con una consulta hecha
    qq->First();
    for (int i = 1; i <= qq->RecordCount; i++) {
        for (int ii = 0; ii < 6; ii++) {
            //se va escribiendo dato por dato
            v1.OlePropertyGet("Cells", i+4, ii+1).OlePropertySet("Value",
                qq->FieldByName(columnas[ii])->AsString.t_str());
        }
        qq->Next();
    }

    XL.OlePropertySet("DisplayAlerts", false);
    XL.OleProcedure("Save");
    XL=Unassigned;

    MessageBoxA(Handle, "ya esta", "", MB_ICONINFORMATION
Responder Con Cita