LinqToExcel с универсальным типом не возвращает пустые строки - PullRequest
0 голосов
/ 22 февраля 2019

Я использую 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 голосов
/ 22 февраля 2019

Я решил это с помощью двухстрочных кодов, не знаю, есть ли лучший ответ на этот вопрос:

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