2011-08-30 158 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