17

私は 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」メソッドのバグであると思いますか?

4

2 に答える 2