【问题标题】:LinqToExcel with Generic Type not return blank rows具有通用类型的 LinqToExcel 不返回空白行
【发布时间】:2019-02-22 13:59:56
【问题描述】:

我正在使用 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.

【问题讨论】:

标签: c# linq-to-excel


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    相关资源
    最近更新 更多