私はExcelを読むためにCodeplexExcelDataReaderを使用しています。私が直面している問題は、Excel 97-2003ドキュメントを問題なく読み取ることですが、ExcelReaderFactory.CreateOpenXmlReader(stream)を使用してExcel 207-2010ドキュメントを読み取ると、空のデータセットが出力されます。誰かがこの問題に直面しましたか。そして、誰かがこれに対する解決策を持っていますか?
読み取り方法は次のとおりです。
private DataSet ReadExcel(string fileName, string extention)
{
DataSet dsData = null;
FileStream stream = File.Open(fileName, FileMode.Open, FileAccess.Read);
IExcelDataReader excelReader = null;
try
{
if (extention.Equals("xls"))
{
//1. Reading from a binary Excel file ('97-2003 format; *.xls)
excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
}
else
{
//2. Reading from a OpenXml Excel file (2007 format; *.xlsx)
excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
// excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
}
excelReader.IsFirstRowAsColumnNames = false;
dsData = excelReader.AsDataSet();
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (excelReader != null)
{
excelReader.Close();
}
}
return dsData;
}