在Silverlight应用程序中从Excel文件导入数据

我正在使用VS2010,Silverlight 5.0

我正在尝试从Excel文件导入数据到网格,为此,我正在使用“OpenFileDialog”。 用户可以像这样使用OpenFileDialoginputExcel文件

OpenFileDialog dlg = new OpenFileDialog(); dlg.Multiselect = false; dlg.Filter = "Excel Sheet(*.xls)|*.xls|All Files(*.*)|*.*"; bool bResult = (bool)dlg.ShowDialog(); if (!bResult) return ""; FileInfo info = dlg.File; StatusText.Text = info.Name; Stream s = info.OpenRead(); StreamReader reader = new StreamReader(s); string xml = reader.ReadToEnd(); var doc = XDocument.Parse(xml); 

在Microsoft Excel格式2003或2007(.xls文件)的情况下,上面的代码工作正常,并给我从Excel中的值的string。

但在Microsoft Excel格式2010(.xlsx文件)的情况下, reader.ReadToEnd()不会以正确的格式返回值,所以下一行,给我下面的错误。

 var doc = XDocument.Parse(xml); 'Data at the root level is invalid. Line 1, position 1' 

我怎样才能解决这个错误,或从Excel中导入数据的最佳方式是什么?