• Sábado 14 de Diciembre de 2024, 19:32

Autor Tema:  importar datos desde excel, a c++ builder y a interbase  (Leído 5916 veces)

aspirante

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
importar datos desde excel, a c++ builder y a interbase
« en: Sábado 3 de Octubre de 2009, 14:48 »
0
Hola a todos.
Mi duda es la siguiente:
Tengo que trabajar con Excel y C++ Builder de dos maneras difentes:

-Por una parte, importar datos a c++ builder desde excel, es decir, grabar datos en una tabla (uso interbase 6), que recibiré de una hoja excel. El proceso comenzará al pichar un botón en un programa de c++ builder.
Se mostrarán en pantalla esos datos, se aceptarán (a través de un botón), y en ese momento, se grabarán en la base de datos.Este proceso se podrá repetir tantas veces como hojas excel se reciban

-Por otra parte, cargar datos desde excel, en una tabla de Interbase. Es un proceso que solo se realizará una vez.

Como hago ésto? que componente de la VCL puedo usar?

Agracería alguna sugerencia para empezar a investigar sobre el tema....
Gracias de antemano.

aspirante

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: importar datos desde excel, a c++ builder y a interbase
« Respuesta #1 en: Lunes 16 de Noviembre de 2009, 13:25 »
0
He investigado sobre el tema en internet.
No he encontrado mucha información sobre como usar los componentes ExcelOleObject que trae la VCL de c++ builder 6.

El código que encontré ha sido éste:

Variant excel,hoja  ;
AnsiString fileIn, path;

// Inicializa el excel
excel = CreateOleObject( "Excel.Application" );
// Lo hace visible
excel.OlePropertySet( "Visible" , false );

// Escoge archivo a abrir
//  declarar y definir una varibale fileIn que tiene el valor del path del fichero
// q quiero modificar, y tambien muestar un mesaje por pantalla con ese path
fileIn = path + "\" + sNombreFichero;
// Abrimos el libro:
excel.OlePropertyGet("Workbooks").OleProcedure("Open", fileIn.c_str());
ShowMessage("Abriendo: " + fileIn);


// Crea una hoja nueva
excel.OlePropertyGet( "Workbooks" ).OleFunction("Add");
hoja = excel.OlePropertyGet("ActiveSheet");
// referenciamos a la 1ª hoja
hoja = excel.OlePropertyGet("Worksheets").OlePropertyGet("Item", 1);

//------- Leemos el contenido de una celda y lo mostramos
int fila = 1, columna = 1;
Variant cell = hoja.OlePropertyGet("Cells", fila, columna);
String valor = cell.OlePropertyGet("Value");



Este código me compila, pero al ejecutar el programa me salta una excepción
Project programa.exe raised exception class EOleSysError with message 'Cadena clase no válida'. Process stopped. Use Step or Run to continue.

este error me da en la instrucción           excel = CreateOleObject( "Excel.Application" );



Así que no sé que es lo que me falta.

He insertado en la form donde se ejecuta ese código un TExcelOleObject, pero no se como unirlo al código anterior.

Alguien me echa una mano? Lo único que quiero es abrir un excel con datos y leerlos

Gracias de antemano.