FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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.... |
#2
|
|||
|
|||
disculoen por escribir doble el mens anterior es q la pc esta lenta y copie doble :s lo siento...
|
#3
|
||||
|
||||
Erraste en la sintaxis de static_cast:
prueba así: Código:
OleProcedure(name, static_cast<TAutoArgsBase*>(&args)); |
#4
|
|||
|
|||
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???
|
#5
|
||||
|
||||
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) Saludos. |
#6
|
|||
|
|||
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
|
|
|
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 |
|