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];
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' ;
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