Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-06-2010
Chewitta Chewitta is offline
Miembro
 
Registrado: jul 2008
Posts: 13
Poder: 0
Chewitta Va por buen camino
Ayuda Importando Excel

Hola...

Tendo una duda estoy importando un archivo de excel a firebird pero cuando me quiero cambiar de hoja, me marca error en el metodo Activate de la clase Range, el codigo q estoy usando es el siguiente:

Código Delphi [-]
  if EdtContacto.Text <> '' then
  begin
    if not FileExists(EdtContacto.Text) then
    begin
      Application.MessageBox(pchar(format('Error 001: No se encontró el archivo %s.'#13'Capture un archivo válido y vuelva a intentarlo.', [EdtContacto.Text])), pchar(self.Caption), MB_OK + MB_ICONERROR);
      EdtContacto.SetFocus;
      Exit;
    end;
  end;
  memLog.Lines.Add('Inicio de lectura de archivo de Prensa...');


  try

    Excel := CreateOleObject('Excel.Application');
    Excel.Workbooks.Open(EdtContacto.Text);

    Sheet := Excel.Workbooks[ExtractFileName(EdtContacto.Text)].WorkSheets[1];
    Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;

    CantRow := Excel.ActiveCell.Row;
    CantCol := Excel.ActiveCell.Column;

    RangoMatriz := Excel.Range['A1', Excel.Cells.Item[CantRow,CantCol]].Value;

    CdsPrensa:=Tclientdataset.create(nil);

    for i:=1 to CantRow do
    begin
      for j:=1 to CantCol do
      begin

        if i = 1 then
        begin
          campoLetras:=TStringField.Create(self);

          with campoLetras do
          begin
            FieldName:=RangoMatriz[i,j];
            DataSet:=CdsPrensa;

            if j = CantCol  then
            begin
              CdsPrensa.Close;
              CdsPrensa.CreateDataSet;
            end;
          end;

        end
        else
        begin
          if i <> o then
            CdsPrensa.Append;
          CdsPrensa.Fields.Fields[j-1].AsString  :=RangoMatriz[i,j];
        end;
        o:= i;
      end;
    end;//for
    
    CdsPrensa.Post;
    dtsPrensa.DataSet:=CdsPrensa;
    aView.DataController.Filter.Clear;
    aView.DataController.DataSource := dtsPrensa;
    aview.BeginUpdate;
    RemoveAllColumns(aView);
    aView.DataController.CreateAllItems;
    aView.EndUpdate;
    memLog.Lines.Add('Termino la carga de Televisión...');

{$ENDREGION}

  memLog.Lines.Add('Inicio de lectura de archivo de Televisión...');

  try
    Excel := CreateOleObject('Excel.Application');
    Excel.Workbooks.Open(EdtContacto.Text);

    Sheet := Excel.Workbooks[ExtractFileName(EdtContacto.Text)].WorkSheets[2];
    Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate; "Aqui me marca el error"

    CantRow := Excel.ActiveCell.Row;
    CantCol := Excel.ActiveCell.Column;

    RangoMatriz := Excel.Range['A1', Excel.Cells.Item[CantRow,CantCol]].Value;

    Cdstele:=Tclientdataset.create(nil);

    for i:=1 to CantRow do
    begin
      for j:=1 to CantCol do
      begin

        if i = 1 then
        begin
          campoLetras:=TStringField.Create(self);

          with campoLetras do
          begin
            FieldName:=RangoMatriz[i,j];
            DataSet:=CdsTele;

            if j = CantCol  then
            begin
              cdsTele.Close;
              cdsTele.CreateDataSet;
            end;
          end;

        end
        else
        begin
          if i <> o then
            cdsTele.Append;
          cdsTele.Fields.Fields[j-1].AsString  :=RangoMatriz[i,j];
        end;
        o:= i;
      end;
    end;//for

    cdsTele.Post;
    dtsTelevision.DataSet:=cdsTele;
    aViewTv.DataController.Filter.Clear;
    aViewTv.DataController.DataSource := dtsTelevision;
    aviewTv.BeginUpdate;
    RemoveAllColumns(aViewTv);
    aViewTv.DataController.CreateAllItems;
    aViewTv.EndUpdate;


  finally
    memLog.Lines.Add('Termino la carga de Televisión...');
    Excel.Quit;
end;

Les agradezco de antemano su ayuda... pasa la informacion de la primera hoja sin problema y al querer cargar la informacion de la segunda hoja me salta ese error...

Última edición por Caro fecha: 28-06-2010 a las 20:24:41. Razón: etiquetas delphi en el codigo
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
Problemas importando archivo Excel duilioisola Servers 2 19-09-2007 18:31:46
Ayuda con Excel y .NET Endor2 .NET 3 07-02-2007 23:36:13
Importando BLOBs con IBEASY+ kurroman Firebird e Interbase 0 22-01-2007 15:38:27
Importando a Access de Oracle. AngelMarvin Tablas planas 1 04-01-2005 08:58:35
ayuda de exportacion de mysql a excel Andrea Martinez PHP 3 30-11-2004 08:03:32


La franja horaria es GMT +2. Ahora son las 22:12:45.


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