Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-04-2010
anoniboxx anoniboxx is offline
Miembro
 
Registrado: feb 2010
Posts: 31
Poder: 0
anoniboxx Va por buen camino
error de c con exel

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:\\p\pp.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 graciashola 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:\\p\pp.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 gracia de antemano y disculpen cualquier molestia....
Responder Con Cita
  #2  
Antiguo 08-04-2010
anoniboxx anoniboxx is offline
Miembro
 
Registrado: feb 2010
Posts: 31
Poder: 0
anoniboxx Va por buen camino
disculoen por escribir doble el mens anterior es q la pc esta lenta y copie doble :s lo siento...
Responder Con Cita
  #3  
Antiguo 08-04-2010
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.202
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Erraste en la sintaxis de static_cast:

prueba así:
Código:
OleProcedure(name, static_cast<TAutoArgsBase*>(&args));
Saludos.
Responder Con Cita
  #4  
Antiguo 08-04-2010
anoniboxx anoniboxx is offline
Miembro
 
Registrado: feb 2010
Posts: 31
Poder: 0
anoniboxx Va por buen camino
gracias por responder tan rapido amigo y pues esa linea no la codifiq yo esta linea esta o la crea c... si yo modifico eso no habra problemas???
Responder Con Cita
  #5  
Antiguo 09-04-2010
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.202
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Esa línea está mal codificada y tienes un error de paréntesis.

La sintaxis de static_cast que no es ni mas ni menos que un casting es así:
Código:
static_cast<T>(arg)
Siendo T el tipo al que quieres convertir el argumento arg. Si la conversión no es posible, te devuelve un nulo. es conveniente testar ese nulo para evitar errores, a no ser que se esté absolutamente seguro de que se hará el casting sin problema alguno.

Saludos.
Responder Con Cita
  #6  
Antiguo 12-04-2010
anoniboxx anoniboxx is offline
Miembro
 
Registrado: feb 2010
Posts: 31
Poder: 0
anoniboxx Va por buen camino
a ok gracias amigo pues la verdad resolvi el problema sin codificar esas lineas q salen por defecto en c++ modifiq algunos datos del codigo q´puse y no me dio error de todas maneras muchisimas gracias por su ayuda y por su gran explicacion... saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Exportar los datos a exel jomanmoz Tablas planas 2 27-03-2008 10:58:49
Exportar de delphi a un libro de exel zvf OOP 12 13-07-2006 20:27:17
abrir hoja de exel GCASTILLO Varios 3 26-04-2006 02:59:35
Que componente uso para trabajar EXEL? marceloalegre Varios 7 17-08-2005 14:32:34
exportar de exel a mysql ¡¡ alachaise Servers 2 11-11-2004 22:18:23


La franja horaria es GMT +2. Ahora son las 01:32:08.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi