Метод заполнения OleDbDataAdapter, импортирующий больше строк

Я импортирую Excel в DataTable. Файл Excel содержит 50х7 ячеек с данными. Проблема в том, что метод Fill() импортирует 368(?) Строк независимо от того, что данные находятся в первых 50 из них. Есть идеи, в чем может быть проблема?

Я использую OleDbDataAdapter для импорта.

 connectionString = "provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";Extended Properties=Excel 8.0;";
 string  commandString = "select * from [" + worksheetName + "]";
 OleDbDataAdapter adapter = new OleDbDataAdapter(commandString, connectionString);
 DataTable fileTable = new DataTable();
 adapter.Fill(fileTable);

1 ответ

Решение

Попробуйте это, чтобы удалить пустые клетки из DataTable:

adapter.Fill(fileTable);
fileTable = fileTable.AsEnumerable()
           .Where(row => !row.ItemArray.All(f => f is System.DBNull || String.IsNullOrWhiteSpace(f.ToString())))
           .CopyToDataTable();

Обратите внимание, что он также удаляет пустые строки внутри листа.

Другие вопросы по тегам