OleDbDataAdapter填充方法导入更多行
我正在将Excel导入到DataTable中。 excel文件包含50x7的数据单元格。 问题是Fill()方法导入368(?)行,无论数据是否在前50个。任何想法可能是什么问题?OleDbDataAdapter填充方法导入更多行
我使用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);
尝试使用此方法从DataTable
删除空细胞:
adapter.Fill(fileTable);
fileTable = fileTable.AsEnumerable()
.Where(row => !row.ItemArray.All(f => f is System.DBNull || String.IsNullOrWhiteSpace(f.ToString())))
.CopyToDataTable();
注意,它也除去在板内部空行。
'System.Data.DataTable'不包含'AsEnumerable'的定义,也没有接受类型为'System'的第一个参数的扩展方法'AsEnumerable'。 Data.DataTable'可以被发现(你是否缺少使用指令或程序集引用?) – 2012-04-10 12:23:10
如果您使用的是.NET 2.0或更低版本,则无法使用LINQ。然后,您可以通过OleDbCommand的阅读器手动构建您的DataTable。 – 2012-04-10 12:33:21
不,我正在使用NET 4.0 – 2012-04-10 12:34:49
您是否尝试过将行从51删除到369;在Excel工作表中查看是否清除问题? – 2012-04-10 11:58:39
什么意思是删除Excel中的行?有空行,当我在文件中向下滚动时,会出现更多行。我不认为他们真的在文件中。请纠正我,如果我错了请 – 2012-04-10 12:01:10
我有类似的问题与Excel表,因为它看起来像行中没有任何东西,但由于某种原因,他们在进口时采取行动。尽管看起来没有东西需要删除,但总是值得一试。 – 2012-04-10 12:04:18