我正在使用LinqToExcel將Excel行映射到C#/ .NET項目中的對象。在解析(轉換/映射)之前過濾LinqToExcel中的空行
我在我的轉換函數中添加了驗證代碼,這樣它們不僅可以轉換數據,還可以在缺少某些數據時警告用戶。 例子:
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 blank rows)的空行觸發。
我的問題是我不能使用有提到的解決方案,因爲調用類似
excel.Worksheet<SomeType>("WorksheetName").Where(row => row.Any(cell => cell != null));
這是因爲應用第一的轉化和凡 - 當我不能訪問原始行數據方法將應用於轉換結果。
另外 - 在轉換函數中,我無法訪問行中的其他值,所以我無法檢查它是單個空單元(錯誤)還是行完全是空的。
在應用轉換之前是否可以過濾掉空行?
的另一個原因是它'excel.Worksheet(「WorksheetName 「).Where(row => row.Any(cell => cell!= null));'不起作用的是LinqToExcel不支持子查詢(異常消息:VisitSubQueryExpression方法未實現) –