私は ExcelDataReader v.2.1 を使用しています。C# プロジェクトで xls ファイルと xlsx ファイルの両方を読み取るためのライブラリ。こちらです:
FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read);
IExcelDataReader excelReader;
string extension = Path.GetExtension(filePath);
if (extension == ".xls")
{
excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
}
else if (extension == ".xlsx")
{
excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
}
else
{
throw new NotSupportedException("Wrong file extension");
}
return excelReader;
次に、「AsDataSet」メソッドを使用して、満たされた DataSet を取得します。
_dataSet = GetDataReader(_options.Filepath).AsDataSet();
ほとんどの場合は問題なく動作しますが、一部の XLSX ファイルでは最初の列しか読み取れません。Watch を使用して excelReader インスタンスを見てきましたが、実際には Excel のすべての値を取得することがわかりましたが、AsDataSet メソッドを使用すると、最初の列のみが読み取られます。
ここで何がうまくいかないのか知っていますか?「AsDataSet」メソッドのバグであると思いますか?