Тип Value2
равен obj
. Если диапазон представляет только одну ячейку, фактическим типом будет некоторый примитивный тип (int, float, decimal, string). Если диапазон представляет несколько ячеек (ваш случай), то возвращаемое значение представляет собой двумерный массив .NET типа obj[,]
.
Вы можете привести значение, возвращаемое Value2
, к массиву и получить к нему доступ с помощью индексаторов:
let vals = sheet.UsedRange.Value2 :?> obj[,]
vals.[1, 1]
Обратите внимание, что возвращаемый массив основан на 1 (а не на нуле, как обычно). Индексатор снова возвращает obj
, поэтому вам необходимо привести значения к их фактическому типу. В зависимости от вашего листа это может быть плавающая строка:
let firstTitle = vals.[1, 1] :?> string
let firstValue = vals.[2, 1] :?> float
(при условии, что у вас есть заголовок в A1 и номер в A2)