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 Format 2003 または 2007 (.xls ファイル) の場合、上記のコードは正常に動作し、Excel の値を文字列で返します。
ただし、Microsoft Excel Format 2010 (.xlsx ファイル) のreader.ReadToEnd()
場合、適切な形式で値が返されないため、次の行に次のエラーが表示されます。
var doc = XDocument.Parse(xml);
'Data at the root level is invalid. Line 1, position 1'
このエラーを解決するにはどうすればよいですか、または Excel からデータをインポートする最良の方法は何ですか?