我提倡后期绑定互操作(COM),它避免了版本依赖关系。无论如何,我都需要安装Excel,因为它是我在将部分工作表内容写回相应的Autodesk产品之前选择的编辑器。实际上,在回答手头的问题时,这就是从 Excel Range 对象的 Value2 属性返回的对象创建 DataTable 的方法。无错误处理,假定存在命名列标题。module DataTable =。
let ofArray2D o =。
let dt = new System.Data.DataTable()。
将 o 与 匹配。
| 空 -> ()。
| o ->。
设 a =。
匹配框 o 与。
| :?(obj[,]) 作为 ->。
| o -> Array2D.create 1 1 o。
let jbase = a.GetLowerBound 0。
let jrange = {jbase + 1 .. a.GetUpperBound 0}。
let ibase = a.GetLowerBound 1。
let irange = {ibase .. a.GetUpperBound 1}。
for i in irange do。
dt.Columns.Add(。
字符串 a.[jbase, i], 。
类型)。
|> 忽略。
for j in jrange do。
让 row = dt,新行()。
for i in irange do 。
排,[i - ibase]。
dt.行,添加行 。
断续器。