C# 获取C中最后一个数据填充的excel行号#

C# 获取C中最后一个数据填充的excel行号#,c#,excel,C#,Excel,我一直在努力有效地获取行号。但当数据被清除,单元格没有被明确删除时,它就失败了 我想这是因为“使用范围” 我所做的就是使用ePlus using (var excel = new ExcelPackage(hpf.InputStream)) { var ws = excel.Workbook.Worksheets["Sheet1"]; if(ws.Dimension.End.Row > 2003) { var result = new JsonRe

我一直在努力有效地获取行号。但当数据被清除,单元格没有被明确删除时,它就失败了

我想这是因为“使用范围”

我所做的就是使用ePlus

using (var excel = new ExcelPackage(hpf.InputStream))
{
    var ws = excel.Workbook.Worksheets["Sheet1"];

    if(ws.Dimension.End.Row > 2003)
    {
        var result = new JsonResult();
        result.Data = "FileLimitExceeded" ;
但它给了我不正确的数据。如何有效地获取最后一次计数

我发现像

var Lastrow =  Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row;

但是名称空间我无法理解。有人能帮我提供一个完整正确的答案吗?

我几天前就来过这个senario,所以我所做的是读取数据并放入数据表,然后过滤数据以在数据不为空时显示记录。
你也可以采用同样的方法。

请参考@sowjanyaattaluri,这就是重点。我想,即使是公认的答案也存在使用范围收缩的问题。Json与Excel或EPPlus有什么关系?你使用的范围在哪里?因为你发布的代码不会试图访问任何应该是评论而不是答案的单元格。此外,如果您可以读取数据作为DATABATE,您就已经知道我读取的有效数据RangeSeA数据包含空白行,因此消除那些没有数据的重复行是很好的。这完全有道理,不完全有道理。如果指定范围,Excel将返回单元格,无论它们是否有数据。您不需要将此范围加载到DataTable中来查找实际包含数据的行。对单元格进行LINQ查询也可以完成同样的工作。不过,最简单的选择是在生成文件时创建命名范围/表,然后通过名称访问它们。链接中描述了准确查找数据的方法。请访问,我认为它会有所帮助。我不是OP。我的评论是,这种方法并不比查看所有单元格更好,只是不需要。您只需对一系列单元格执行
where
LINQ查询即可。最好的选择是使用命名范围,这样就不需要搜索限制