我下载它们并尝试在openfiledialog C#中打开它们时无法读取XLS文件

时间:2017-03-09 07:24:36

标签: c# excel visual-studio-2015 exceldatareader

因此,当我下载this file this comes up时,我正在从一家计算该公司员工日的服务中下载一些excel文件:
file

现在我觉得一切都好,它应该可以正常工作。 如果我尝试在我的Visual Studio 2015中使用openfiledialog I get this error.

打开此文件,那么这就是交易

error

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

如何修复此问题,以便我不需要转到excel文件并将其另外保存为excel-workmap(xls或xlsx)?

PS:我将这个excel文件放入datagridview。

1 个答案:

答案 0 :(得分:1)

这些笔记太难以评论,所以我在这里作为答案:

  

注1:以这样的方式使用ExcelReaderFactory:

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");
  

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

result = reader.AsDataSet();
  

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