我正在使用 LinqToExcel 将 Excel 行映射到 C#/.NET 项目中的对象。
我将验证代码放在我的转换函数中,这样它们不仅可以转换数据,而且还可以在丢失某些数据时警告用户。例子:
excel.AddTransformation<PaymentObject>(x => x.PaymentPeriod, cellvalue =>
{
if (cellvalue.Length == 0)
{
throw new Exception(String.Format(Errors.EmptyField, ColumnNames.PaymentPeriod, ColumnNames.EmployeeNumber, lastCheckedEmployeeNumber));
}
return CultureInfo.InvariantCulture.TextInfo.ToTitleCase(cellvalue);
});
但是,我不希望 Excel 有时在底部添加的空行触发此验证(请参阅LinqToExcel 空白行)。
我的问题是我不能使用那里提到的解决方案,因为在调用类似的东西时我无法访问原始行数据
excel.Worksheet<SomeType>("WorksheetName").Where(row => row.Any(cell => cell != null));
这是因为首先应用了转换,而 Where 方法将应用于转换结果。
另外 - 在转换函数中,我无法访问行中的其他值,所以我无法检查它是单个空单元格(错误)还是行完全为空。
是否可以在应用转换之前过滤掉空行?