OleDbDataAdapter填充方法导入更多行

时间:2012-04-10 11:41:01

标签: c# datatable fill oledbdataadapter

我正在将Excel导入DataTable。 excel文件包含带有数据的50x7单元格。 问题是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 个答案:

答案 0 :(得分:1)

尝试此操作以从DataTable

中删除空单元格
adapter.Fill(fileTable);
fileTable = fileTable.AsEnumerable()
           .Where(row => !row.ItemArray.All(f => f is System.DBNull || String.IsNullOrWhiteSpace(f.ToString())))
           .CopyToDataTable();

请注意,它还会删除工作表内的空行。