Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Abrir un fichero excel desde mi aplicación

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Abrir un fichero excel desde mi aplicación Responder citando

Buenas, sé que es un tema ya muy visto en este foro. He leido un montón de post respecto al tema. Pero de verdad que ya me doy por vencida, no sé qué estoy haciendo mal.
A ver, en una de las ventanas de mi aplicación tengo un boton AbrirHojaExcel y un TOpenDialog. Lo que quiero es que cuando el usuario pulse el botón se abra el opendialog para que el usuario pueda abrir el fichero excel que él quiera, tal cual, es decir, que se abra el Excel y dentro de él pues el fichero en cuestión.

Vale, pues he intentado hacerlo de dos maneras distintas y nada, no da ningún error, se abre el opendialog, selecciono el fichero, pero no abre nada. Os pongo el código a ver qué os parece:

Una manera:

Código:

void __fastcall TForm9::BitBtn1Click(TObject *Sender)
{

    if (OpenDialog1->Execute()) {
        NombreFichero=OpenDialog1->FileName;
         if (!FileExists(NombreFichero))
            ShowMessage("Ese fichero no existe");
         else {
           
            xlApp=CreateOleObject("Excel.Application");
            xlApp.Exec(PropertySet("Visible")<<true);
            xlLibro=xlApp.Exec(PropertyGet("Workbooks"));
            xlLibro.Exec(Procedure("Open")<<"C:\\ProyectoMedidor\\Bases de Datos\\160501.xls");
            BotonCargar->Enabled=true;
         }
    }
}


Otra forma:
Código:

void __fastcall TForm9::BitBtn1Click(TObject *Sender)
{

    if (OpenDialog1->Execute()) {
        NombreFichero=OpenDialog1->FileName;
         if (!FileExists(NombreFichero))
            ShowMessage("Ese fichero no existe");
         else {
            ShellExecute(0,"open", OpenDialog1->FileName.c_str(),0, 0, SW_SHOW);
            BotonCargar->Enabled=true;
         }
    }
}



Bueno, pues nada, a ver si alguien me puede ayudar.

Muchas gracias por adelantado y saludos!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Esta es la funcion q uso yo, espero q te sirva.Un saludo

void __fastcall TMain::AbrirExcel(String fich)
{
//oExcel = CreateOleObject("Excel.Application");
oExcel = CreateOleObject("Excel.Application");
//Lo hacemos visible
oExcel.OlePropertySet("Visible",true);
Visible=true;
// Carga un fichero
oExcel.OlePropertyGet( "Workbooks" ).OleProcedure( "Open", fich.c_str());
// y selecciona la primera hoja del primer libro
oHoja = oExcel.OlePropertyGet( "Workbooks" ).OlePropertyGet( "Item", 1 ).OlePropertyGet( "Worksheets" ).OlePropertyGet( "Item", 1 );

}
Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.