Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   importar excel datos numericos (https://www.clubdelphi.com/foros/showthread.php?t=91737)

marcelocarazas 10-04-2017 21:31:08

importar excel datos numericos
 
Buenas tardes amigos del foro,
estoy trabajando con importar archivos excel utilizo el siguiente código

Código Delphi [-]

const
  xlCellTypeLastCell = $0000000B;
var
 Excel, Sheet: OLEVariant;
 CantRow, CantCol, i, j, k, l : Integer;
 RangoMatriz : Variant;
 fileName, nro_carga, cadena, vde, vdeCod, MspAPP : String;
 LastCell : Variant;
begin
  openDialog1 := TOpenDialog.Create(self);
  
  openDialog1.InitialDir := GetCurrentDir;
  
  openDialog1.Options := [ofAllowMultiSelect];
  OpenDialog1.Filter := '*.xlsx';
  openDialog1.Filter :=  'Archivos Excel 2013|*.xlsx|Archivos Excel 2007|*.xls';
  proLimpiarGrid(sgDetalle);
  if not openDialog1.Execute
  then ShowMessage('La Operacion  Se cancelo')
  else
  begin
  
    l := 1;
    for i := 0 to openDialog1.Files.Count-1 do
    begin

      Excel := CreateOleObject('Excel.Application');
      fileName:= openDialog1.Files[i];
      Excel.Workbooks.Open(FileName);
      Sheet := Excel.Workbooks[ExtractFileName(FileName)].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;
      nro_carga := RangoMatriz[8, 1];
      //j := 1;
      with sgDetalle do
      begin
        for j:= 18 to CantRow-1 do
        begin

          Cells[0, l] := IntToStr(j-1);
          cadena := RangoMatriz[j, 1];
          vde := Trim(UpperCase(MidStr(cadena, pos('-', cadena)+1, Length(cadena))));
          vdeCod := Trim(UpperCase(MidStr(cadena, 1, pos('-', cadena)-2)));

          Cells[1, l] := vde;
          Cells[2, l] := vdeCod;

          cadena := RangoMatriz[j, 2];
          vde := Trim(UpperCase(MidStr(cadena, pos('-', cadena)+1, Length(cadena))));
          vdeCod := Trim(UpperCase(MidStr(cadena, 1, pos('-', cadena)-2)));

          Cells[3, l] := vde;
          Cells[4, l] := vdeCod;

          cadena := nro_carga;
          vde :=  Trim(UpperCase(MidStr(cadena, pos(':', cadena)+1, Length(cadena))));

          Cells[5, l] := vde;
          Cells[6, l] :=  RangoMatriz[j, 5] + '0' ; // aqui no funciona no encuentra nada
          
          Inc(l);
    
   RowCount := RowCount + 1;
   end;

    end;

  end;
end;
  
  openDialog1.Free;
   Excel.Quit
  
  
end;

El problema que tengo es que el archivo excel tiene formato de numeros enteros y reales, al momento de pasarlo al stringgrid no me muestra nada es como no lo reconociera, con las cadenas de texto esta normal funciona bien pero con los numeros no funciona. No se que que estara mal alguien podria ayudarme. Gracias y saludos


La franja horaria es GMT +2. Ahora son las 17:22:53.

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