这是我的代码。其目的是计算第一列中包含文本的行数。
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[i, 1].Text
当我只是在调试器之外运行代码时,我在调用时遇到异常:
Package object was closed and disposed, so cannot carry out operations
on this object or any stream opened on a part of this package.
当我使用调试器逐步完成它时,我得到了同样的异常......除非我在我的监视窗口中有这个:sheet.Cells[1, 1].Text
. 如果我在代码上运行调试器(即按 F5),在sheet
对象初始化之前,我会得到异常。如果我在我的 Watch 窗口中使用剪断的代码单步执行代码,则无一例外。代码完美无缺。Watch 窗口正确显示了第一个单元格的内容。是什么赋予了?