Метод заполнения 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();
Обратите внимание, что он также удаляет пустые строки внутри листа.