Код:
RangeMatrix : Variant
...
RangeMatrix := XLApp.Range['A1',XLApp.Cells.Item[X,Y]].Value2;
repeat
for R := 1 to Y do
StringGrid1.Cells[(R),(K)] := RangeMatrix[K,R];
Inc(K,1);
StringGrid1.RowCount := K + 1;
until
K > X;
Сопоставляем матрицу WorkSheet с нашей Delphi матрицей и определяем цикл для заполнения TStringGrid. В результате имею заполенный StringGrid1 данными листа и хочу преобразовать данные в простой одномерный массив целочисленного типа (все данные целые числа).
Код:
...
OM[1]:= strtoint(StringGrid1.Cells[(1),(1)]);
...
Материться по поводу не совпадения типов. Если пытаюсь преобразовать сразу variant в integer c помощью:
Код:
function VarToInt(var AVariant: variant; DefaultValue: integer = 0): integer;
begin
Result := DefaultValue;
if VarIsNull(AVariant) then
Result := 0
else
if VarIsOrdinal(AVariant) then
Result := StrToInt(VarToStr(AVariant));
end;
Код:
...
OM[i]:=VarToInt(RangeMatrix[K,R]);
...
имею тот же результат - типы не совпадают...