c# - 使用 linq 返回值不为空的单元格 - Epplus

标签 c# excel linq epplus

我使用下面的 Linq 代码返回行中最后一个填充的单元格。但是,我不知道返回空值的单元格的原因是什么(可能是某种格式或类似的东西)。示例

我的行从 B16 开始,转到 AG16,论文中的代码应该返回 AG16,但这是返回 AI16,并且此单元格是空白的,没有值、公式,什么都没有。

我想忽略具有空白值的单元格,因此返回 AG16。

我按照下面的代码执行,它返回 AI16,即使它没有值

var lastRowCellValue = worksheet.Cells.Last(c => c.End.Row == 16)
  • 16 是他要检查的行

我已经尝试使用下面的代码,但它返回 NULL 而不是 AG16,这是我的最后一个值单元格

 var lastRowCellValue = worksheet.Cells.Last(c => c.End.Row == 16).Where(c => c.Value != null);

我做错了什么?

最佳答案

假设问题类似于this ,由于空单元格或格式导致问题,您可以使用从 this answer 派生的函数:

int LastColumnByRow(ExcelWorksheet sheet, int rownum) {
    var col = sheet.Dimension.End.Column;

    while (col >= 1) {
        if (!string.IsNullOrEmpty(sheet.Cells[rownum, col].Text)) {
            break;
        }
        col--;
    }
    return col;
}

这样调用:

var lastRowCellValue = worksheet.Cells[16, LastColumnByRow(ws, 16)];

关于c# - 使用 linq 返回值不为空的单元格 - Epplus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42766435/

相关文章:

c# - Paypal电子商务网站如何处理多种货币?

excel - 将 Excel 数据导出到 .csv 时如何在列数据上添加引号?

VBA 用户定义类型未定义(仅有时)

excel - 数组操作期间下标超出范围

c# - 使用文字控制从代码后面添加 css 类

c# - 占位符控件集合在回发时为空

c# - 使用 Dapper 绑定(bind)具有附加动态属性的强类型模型

c# - LINQ 是否允许简化此构造?

c# - 使用 LINQ 解析 XML 并填充现有对象的属性而不是创建新的属性

c# - 从列表集合中删除一个项目