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