使用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);
我究竟做错了什么?
假设问题与此类似,使用空单元格或导致问题的格式化,可以使用从此答案派生的函数:
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)];