2011-08-30 157 views
3

我想從Excel文件導入一些基本數據(只有少數整數)到F#列表中。 這裏是我計算的代碼,打開一個Excel文件,將單元格「C6」的值和「存儲」在一個名爲l的變量中。 但是,它不會編譯爲出現類型錯誤。事實上,第一個值的類型是obj。 如何將它轉換爲int?將Excel數據導入F#

//#r "Microsoft.Office.Interop.Excel" 

//#r "office" 

open Microsoft.Office.Interop 


let xlApp = new Excel.ApplicationClass() 

let xlWorkBook = xlApp.Workbooks.Open(@"C:\Users\Fabien C\Desktop\algo données.xlsx") 

let xlWorkSheet = xlWorkBook.Worksheets.["Produits"] :?> Excel.Worksheet 

let firstValue = xlWorkSheet.Cells.[6,3] 

let (l : int) = firstValue 
+0

可能重複[f#讀取xls文件 - 如何解析value2對象](http://stackoverflow.com/questions/6031507/f-read-xls-file-how-to-parse-a-value2-對象) – Brian

回答

1

我認爲只需要添加

:?> int 

到最後一行的末尾將downcast firstValue,但也請參閱鏈接副本question以獲取更多有關Excel interop的信息。

+0

謝謝大家,這是完美的 – fabco63

1

什麼是firstValue的真實類型?如果它是一個int,使用動態轉換:

firstValue :?> int 

否則可能轉換爲字符串,然後一個int會工作:

firstValue |> string |> int