在ASP.NET 4.0中加载上载文件时出现EPPlus异常

在ASP.NET 4.0中加载上载文件时出现EPPlus异常,asp.net,epplus,Asp.net,Epplus,这是我的密码。其目的是计算第一列中包含文本的行数 ExcelWorksheet sheet = null; using (ExcelPackage pkg = new ExcelPackage(new MemoryStream(_fileBytes))) { sheet = pkg.Workbook.Worksheets[1]; } int rows = sheet.Dimension.End.Row; int count = 0; for (int i = 1; i <= rows

这是我的密码。其目的是计算第一列中包含文本的行数

ExcelWorksheet sheet = null;
using (ExcelPackage pkg = new ExcelPackage(new MemoryStream(_fileBytes)))
{
  sheet = pkg.Workbook.Worksheets[1];
}

int rows = sheet.Dimension.End.Row;
int count = 0;
for (int i = 1; i <= rows; ++i)
{
  if (!string.IsNullOrEmpty(sheet.Cells[i, 1].Text))
    ++count;
}

当我使用调试器逐步完成它时,我会得到相同的异常。。。除非我的手表窗口中有此项:
sheet.Cells[1,1].Text
。如果我在初始化
工作表
对象之前对代码运行调试器(即按F5),我会得到异常。如果我在手表窗口截取代码,也不例外。该代码工作完美无瑕。“监视”窗口正确显示第一个单元格的内容。给出了什么?

您得到了异常,因为您试图使用语句访问
之外的
ExcelPackage
工作表(处理包)

(a) 嗯。facepalm使用语句是有原因的。(b) 哦,是的,嘿,林克,我用它做我在这里放屁的所有东西。美好的
Package object was closed and disposed, so cannot carry out operations 
on this object or any stream opened on a part of this package.
using (ExcelPackage pkg = new ExcelPackage(new MemoryStream(_fileBytes)))
{
    sheet = pkg.Workbook.Worksheets[1];
    int rows = sheet.Dimension.End.Row;
    int count = 0;
    for (int i = 1; i <= rows; ++i)
    {
    if (!string.IsNullOrEmpty(sheet.Cells[i, 1].Text))
      ++count;
    }
}
using (ExcelPackage pkg = new ExcelPackage(new MemoryStream(_fileBytes)))
{
    var sheet = pkg.Workbook.Worksheets.First();
    int count = sheet.Cells[1, 1, sheet.Dimension.End.Row, 1]
        .Count(c => !string.IsNullOrEmpty(c.Text));
}