• Lunes 29 de Abril de 2024, 22:53

Autor Tema:  error de c con exel  (Leído 1782 veces)

anonibox

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
error de c con exel
« en: Jueves 8 de Abril de 2010, 18:04 »
0
hola amigos disculpe q moleste tanto pero es q necesito exportar datos de mi progra hacia un excel y consegui un codigo y lo modifiq para q se adactara a mi progra y el programa me corre y pero juando le doy para q  exporte me da este error:
el esrroe esta en la claseEOleSysError  con el mensaje 'nombre desconosido' y me muestra el error en eta linea de codigo

OleProcedure(name, static_cast)<TAutoArgsBase*>(&args));
 porfa alguien sabe como solucionar este problema??' bueno para q tengan una idea este es el codigo q tengo en un boton....

Variant XL,v0,v1,v2,v3v4;
XL=Variant::CreateObject("excel.application");
XL.OlePropertySet("Visible",true);
XL.OlePropertyGet("Workbooks").OleProcedure("SaveAs","C:\ppp.xls");
v0=XL.OlePropertyGet("Sheets","pr");
v1=v0.OlePropertyGet("Cells");

String c[9]={"Nombre","Area","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado","Domingo"};

   int i=0;
 Form4->DBGrid1->DataSource->DataSet->First();
while((!Form2->DBGrid1->DataSource->DataSet->Eof)&&(!Form4->DBGrid1->DataSource->DataSet->Eof))
{ i++;
    for(int j=0;j<9;j++)
    {
    v1.OlePropertyGet("Cells",i+4,j+1).OlePropertySet("Value",Form4->ADOT->FieldByName(c[j])->AsString.c_str());
    }

Form4->DBGrid1->DataSource->DataSet->Next();
}
XL.OlePropertySet("DisplayAlerts",false);
XL.OleProcedure("Save");
XL=Unassigned;
Application->MessageBoxA("LISTO","XX", NULL);


 y este es el code original con comentarios  

//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


como se  dieron cuenta realic algunos cambios.. cundo ejecuto la accion el me crea el .xls bueno abre el excel pero sin el doc como tal solo abre y el fondo negro.... porfa alguein q me ayude gracias

anonibox

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: error de c con exel
« Respuesta #1 en: Viernes 9 de Abril de 2010, 15:17 »
0
pa pude solucionar mi error y q funcionara bien si alguien senecita el codigo de como exportar los datos de una bd a excel me puede escribir a mi correo box1488@mail.com con el asunto foro soloCodiggo y con gusto te lo pasare saludosssss.......

Ana_22

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: error de c con exel
« Respuesta #2 en: Jueves 4 de Noviembre de 2010, 15:56 »
0
HOLA! Probé el mismo ejemplo  pero me tira el mismo error, me podés explicar como lo solucionaste??. Desde ya Gracias.