f# read xls file - how to parse a value2 object

前端 未结 1 1889
無奈伤痛
無奈伤痛 2021-01-02 21:48

I tried to use F# read a xls file as below

open Microsoft.Office.Interop.Excel
let app = ApplicationClass(Visible = false)
let book = app.Workbooks.Open \"te         


        
相关标签:
1条回答
  • 2021-01-02 22:19

    The type of Value2 is obj. If the range represents just a single cell, the actual type will be some primitive type (int, float, decimal, string). If the range represents several cells (your case), then the returned value is a two-dimensional .NET array of type obj[,].

    You can cast the value returned by Value2 to an array and access it using indexers:

    let vals = sheet.UsedRange.Value2 :?> obj[,]
    vals.[1, 1]
    

    Note that the returned array is 1-based (and not zero based as usual). The indexer again returns obj, so you need to cast the values to their actual type. Depending on your sheet, this will be probably float or string:

    let firstTitle = vals.[1, 1] :?> string
    let firstValue = vals.[2, 1] :?> float
    

    (Assuming you have a title in A1 and a number in A2)

    0 讨论(0)
提交回复
热议问题