C# Can';当我下载XLS文件并尝试在openfiledialog C中打开它们时,我不会读取它们#

C# Can';当我下载XLS文件并尝试在openfiledialog C中打开它们时,我不会读取它们#,c#,excel,visual-studio-2015,exceldatareader,C#,Excel,Visual Studio 2015,Exceldatareader,因此,我正在从一个服务下载一些excel文件,当我下载时,该服务计算该公司一名员工的工作日: 现在我觉得一切都很好,它应该工作得很好。 因此,如果我尝试在VisualStudio2015中使用openfiledialog打开此文件,就可以这样做 现在,当我将excel另存为97-2003 xls文件时,它与createbinaryreader一起工作。如果我将其保存为普通excel格式的xlsx文件,它将与createopenxmlreader一起工作 如何修复此问题,使我不需要转到exce

因此,我正在从一个服务下载一些excel文件,当我下载时,该服务计算该公司一名员工的工作日:

现在我觉得一切都很好,它应该工作得很好。 因此,如果我尝试在VisualStudio2015中使用openfiledialog打开此文件,就可以这样做

现在,当我将excel另存为97-2003 xls文件时,它与
createbinaryreader
一起工作。如果我将其保存为普通excel格式的xlsx文件,它将与
createopenxmlreader
一起工作

如何修复此问题,使我不需要转到excel文件并专门将其保存为excel工作图(xls或xlsx)


PS:我正在将此excel文件放入datagridview。

这些注释太多,无法发表评论,因此我在这里给出了答案:

注1:以如下方式正确使用ExcelReaderFactory:

注2:使用不带参数的
AsDataSet()
方法

注3:您可以使用的更新版本

IExcelDataReader reader;
if (file.Extension.Equals(".xls"))
    reader = ExcelReaderFactory.CreateBinaryReader(stream);
else if (file.Extension.Equals(".xlsx"))
    reader = ExcelReaderFactory.CreateOpenXmlReader(stream);
else
    throw new Exception("Invalid Excel File");
result = reader.AsDataSet();