Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-05-2012
axel.isr axel.isr is offline
Miembro
NULL
 
Registrado: abr 2012
Posts: 12
Poder: 0
axel.isr Va por buen camino
Unhappy Error al leer celda de libro de Excel

Estimados,

Me encuentro realizando una aplicación en donde en uno de sus módulos tengo que importar datos de un libro de Excel.

Tengo mi DataModule (DMExcel) con un TExcelApplication, un TExcelWorkbook y un TExcelWorksheet. Cuando conecta con el libro de Excel no me aparece ningún error, el inconveniente surge al querer leer el contenido de una celda del mismo en esta parte:

Código Delphi [-]
DMExcel.Hoja.Cells.Item[Row, 1]
.

En esa parte, me aparece el siguiente error:
Cita:
Project Project1.exe raised exception class EIntfCastError with message 'Interface not supported'...
He estado buscando sobre este error, pero con resultados negativos sólamente...
Algunos datos mas:
Conecto por el BDE con SQL Server 2005 Express Edition, donde tengo mi tabla de stock que es a donde quiero pasar la información.


El código entero:

Código Delphi [-]
procedure TfrmIngresoStock.ConectarExcel(archivo:string);
var
  ok:boolean; row:integer;
begin
 ok:=true;
  try
    try
      ok:=true;
      //Iniciar ExcelApp
      DMExcel.ExcelApp.Connect;
      try
        //Abrir Workbook
        DMExcel.ExcelApp.Workbooks.Open(archivo,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,
              emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,0  );
        DMExcel.Libro.ConnectTo(DMExcel.ExcelApp.Workbooks[1]);
        //DMExcel.Hoja.ConnectTo(DMExcel.Libro.Worksheets[1] as _worksheet);
      except
      on exception do
      begin
        //No se pudo abrir el archivo de Excel
        ShowMessage('No se ha podido abrir el archivo de Excel');
        ok:=false;
        DMExcel.Libro.Save;
        DMExcel.Libro.Close;
        Abort
      end
      end;
    except
    on exception do
    begin
      ShowMessage('No se ha podido abrir el archivo de Excel');
      ok:=false;
      DMExcel.Libro.Save;
      DMExcel.Libro.Close;
      Abort
    end
    end;
  finally
    if not(ok) then
    begin
      //No se pudo iniciar ExcelApp
      ShowMessage('Error al conectar con Excel.'+#13+'Póngase en contacto con su administrador.');
      DMExcel.Libro.Save;
      DMExcel.Libro.Close;
      Abort
    end
  end
end;

procedure TfrmIngresoStock.ImportarExcel();
var
  row:integer; ok:boolean;
begin
  ok:=true;
  try
    //Abrir tablas
    try
      DataModule1.tStock.Open;
      DataModule1.tProductos.Open;
      row:=2; //Empieza de la segunda fila

      while DMExcel.Hoja.Cells.Item[Row, 1] <> '' do
      begin
        DataModule1.tStock.Append;
        DataModule1.tStockCodProducto.Value := DMExcel.Hoja.Cells.Item[Row, 1];
        DataModule1.tStockIMEI.Value        := DMExcel.Hoja.Cells.Item[Row, 2];
        DataModule1.tStockEstado.Value      := 0;
        DataModule1.tStockF_alta.Value      := DateToStr(Today);
        DataModule1.tStock.Post;
        row:=row+1;
      end;

    except
      on exception do
      begin
        MessageBox(0,'No se ha podido conectar con la base de datos.','Error',MB_ICONWARNING);
        ok:=false;
        Abort
      end
    end; //Cierra segundo try
  finally
  begin
    if ok then
      MessageBox(0,'Datos importados correctamente','ImportData',MB_ICONINFORMATION)
    else
    begin
      MessageBox(0,'No se pudieron importar datos','Error',MB_ICONWARNING);
      Abort
    end;

    //Cierra Libro, App y tablas
    DMExcel.Libro.Save;
    DMExcel.Libro.Close;
    DMExcel.ExcelApp.Quit;
    DMExcel.ExcelApp.Disconnect;

    DataModule1.tStock.Close;
    DataModule1.tProductos.Close;
  end
end
end;

procedure TfrmIngresoStock.Button2Click(Sender: TObject);
begin
  if edtPath.Text <> '' then
  begin
    ConectarExcel(edtPath.Text);
    ImportarExcel;
  end
end;


Desde ya, les agradezco por su ayuda.
Saludos,
Axel.

Última edición por axel.isr fecha: 02-05-2012 a las 00:15:36. Razón: Vista
Responder Con Cita
 



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
Leer el hyperlik de una celda en un archivo de excel jazmin OOP 7 11-05-2010 22:11:05
Del libro de excel a paradox Camilo Conexión con bases de datos 2 26-09-2008 16:16:33
Leer Comentario en Celda de Excel Kipow Servers 1 25-09-2008 21:33:19
Problemas con Libro de Excel lgarcia Servers 2 15-12-2006 22:06:15
al cerrar un libro se me cierra el Excel! haron Servers 0 30-05-2003 11:07:26


La franja horaria es GMT +2. Ahora son las 19:16:31.


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