我正在使用 VS2010,Silverlight 5.0
我正在尝试将数据从 Excel 文件导入到网格,因为我正在使用“OpenFileDialog”。用户可以像这样使用 OpenFileDialog 输入 Excel 文件
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 中的值。
但是在 Microsoft Excel 格式 2010(.xlsx 文件)的情况下,reader.ReadToEnd()
它不会以正确的格式返回值,所以下一行,给我以下错误。
var doc = XDocument.Parse(xml);
'Data at the root level is invalid. Line 1, position 1'
我该如何解决这个错误,或者从 excel 导入数据的最佳方法是什么?