Ver Mensaje Individual
  #12  
Antiguo 11-01-2013
Anusky Anusky is offline
Miembro
 
Registrado: mar 2008
Posts: 23
Reputación: 0
Anusky Va por buen camino
Un saludo a todos de nuevo,
después de leer la información he probado el código y me salta un 'OLE error 800A03EC' al leer el valor de la casilla. Según he leído la automatización funciona a partir de excel 2007 con formato .xlsx, pero mi programa debe funcionar con archivos .xls, que son los que yo uso para las pruebas. Dejo aquí el código por si no fuese problema de la extensión del archivo:

Código Delphi [-]
procedure TMuestraArchivoForm.procesarArchivo;
var
  p: integer;
  x: String;
  listaContenidoExcell: TStringList;
  Excel, WrkS, WrkB: OLEVariant;
  Row, Col: Integer;
  Rows, Cols: Integer;
begin
  //Variable de control
  p := 0;

  //--------------
  Excel := CreateOleObject('Excel.Application');
  Excel.Workbooks.Open(FRutaArchivo);

  WrkS := Excel.Worksheets[1];
  Cols := WrkS.UsedRange.Columns.Count;
  Rows := WrkS.UsedRange.Rows.Count;
  //-------------


  repeat
    listaContenidoExcell := TStringList.Create;

    for Row := 1 to Rows + 1 do
    begin
      x := Excel.ActiveSheet.Cells[Row, Col].Value;
      if x <> EmptyStr then
        listaContenidoExcell.Add(x);
    end;

//----Aquí hay código de lo que hago con el stringlist de meterlo en casillas y tal---//

    inc(p);
    FreeAndNil(listaContenidoExcell);
  until p = Cols + 1; 
  
  Excel.Quit;

end;

El fallo me da en la línea 'x := Excel.ActiveSheet.Cells[Row, Col].Value;'
Muchas gracias de nuevo por todo, seguiré haciendo pruebas.
Responder Con Cita