C# EPPlus打开excel.xlsx文件错误

C# EPPlus打开excel.xlsx文件错误,c#,excel,xlsx,epplus,vba,C#,Excel,Xlsx,Epplus,Vba,运行此代码时出现错误。每次我到达行ExcelWorkbook=package.workBook程序将中断,我不知道为什么。我正试图打开一个.xlsx文件,到目前为止,一切似乎都很正常 我确实注意到当地人正在传达这样的信息: 工作簿“package.工作簿”引发了类型为“System.UriFormatException”的异常OfficeOpenXml.ExcelWorkbook{System.UriFormatException} 如有任何帮助,将不胜感激。请提前感谢 从异常消息中,您的Exc

运行此代码时出现错误。每次我到达行
ExcelWorkbook=package.workBook程序将中断,我不知道为什么。我正试图打开一个.xlsx文件,到目前为止,一切似乎都很正常

我确实注意到当地人正在传达这样的信息:

工作簿“package.工作簿”引发了类型为“System.UriFormatException”的异常OfficeOpenXml.ExcelWorkbook{System.UriFormatException}


如有任何帮助,将不胜感激。请提前感谢

从异常消息中,您的Excel文件很可能包含格式不正确的URI,并且某些版本的EPPlus在打开URI不正确的工作簿时抛出异常

确保您从code plex获得最新版本的EPPlus,很显然,最新版本有解决此特定问题的修补程序

退房并离开。在发布此答案时,codeplex epplus分支中的一些评论表示此问题尚未解决


或者,您可以查看其他一些库,它们可以帮助您读取xls文件。检查是否可以满足您的需要。

您是否使用调试器检查了该行中是否引发了任何异常?发布异常,以便有助于缩小问题的范围。@LakshmiNarayanan:没有抛出任何异常,它只是中断到应用程序,而没有提供任何信息。您是否在Excel中打开了XLSX文件?这总是发生在我身上…@ThomasW:我确实有几次不小心这样做了,但是无论它是否打开,我仍然收到了相同的问题。我会尝试一下。更新到最新版本对我解决了这个问题。谢谢
public void DailyOvertime(string fname)
  {
      var existingFile = new FileInfo(fname);

      using (var package = new ExcelPackage(existingFile))
      {
          // Get the work book in the file
           ExcelWorkbook workBook = package.Workbook;
          if (workBook != null)
          {
              if (workBook.Worksheets.Count > 0)
              {
                  // Get the first worksheet
                  ExcelWorksheet currentWorksheet = workBook.Worksheets.First();

                  // read some data                    
                  var Monday = currentWorksheet.GetValue(11, 4);
                  var Tuesday = currentWorksheet.GetValue(13, 4);
                  var Wednesday = currentWorksheet.GetValue(15, 4);
                  var Thursday = currentWorksheet.GetValue(17, 4);
                  var Friday = currentWorksheet.GetValue(19, 4);
                  var Saturday = currentWorksheet.GetValue(21, 4);
                  var Sunday = currentWorksheet.GetValue(23, 4);

              }

          }
      }
  }