具有通用类型的LinqToExcel不返回空白行

时间:2019-02-22 13:59:56

标签: c# linq-to-excel

我正在使用LinqToExcel将所有行提取到列表中,但是在这种情况下,我不希望有任何空行。我已经在此处搜索任何解决方案,但都没有成功解决我的问题。

var excelSheetLst = excel.Worksheet<T>(sheetName).Where(s => s.GetPropertyValue("RegisterNumber").ToString() != "").ToList();

在此代码示例中,我遇到以下错误:

  

System.Data.OleDb.OleDbException:'外部表的格式不正确。'

请注意,类型T始终是属性名RegisterNumber(字符串),而sheetName随表名而变。

编辑:

产生此错误的最小代码

var fileNamePath = "excel.xlsx"; // This excel have empty rows
var sheetName = "Client"; // Sheet name in excel

public class Client
{
    public string RegisterNumber { get; set; }
    public string Name { get; set; }
    public string Address { get; set; }
}

var excel = new ExcelQueryFactory(fileNamePath);
excel.DatabaseEngine = DatabaseEngine.Ace;

var excelSheetLst = excel.Worksheet<T>(sheetName).Where(s => s.GetPropertyValue("RegisterNumber").ToString() != "").ToList();

JP。

1 个答案:

答案 0 :(得分:0)

我已经用两个行代码解决了这个问题,不知道是否有更好的答案:

var excelSheetLst = excel.Worksheet<T>(sheetName).ToList();
excelSheetLst.RemoveAll(s => s.GetPropertyValue("RegisterNumber") == null);