1

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 からデータをインポートする最良の方法は何ですか?

4

0 に答える 0