我正在尝试将excel文件读入DataTable,但是IMEX驱动程序不能读取列中的所有数据。这里面有什么问题呢?
OleDbConnection dCon = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=HDR=YES;Excel 12.0;IMEX=1");下面是代码。
OleDbConnection dCon = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
fileName + ";Extended Properties=HDR=YES;Excel 12.0;IMEX=1");
OleDbDataAdapter dAdp = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", dCon);
dAdp.TableMappings.Add("tbl", "Table");
dAdp.Fill(dSet);
DataTable dT = dSet.Tables[0];
for (int i = 0; i < dT.Rows.Count; i++)
{
//code for getting the values.
}发布于 2012-11-13 18:00:43
问题是这样做有255个字符的限制。
您可能需要考虑使用Microsoft.Office.Interop.Excel程序集来获得更好的解决方案。
http://www.dotnetperls.com/excel
发布于 2013-10-31 01:55:04
我意识到这对于OP来说有点晚了,但由于我遇到了它,我想补充一句,我认为这个示例中的扩展属性部分是错误的。扩展属性需要单独放在自己的引号中,以便进行适当的处理。
OPs示例使用了以下内容
新扩展OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source== OleDbConnection dCon“+ fileName +”;
Properties=HDR=YES;Excel 12.0;IMEX=1");
我相信这应该是
新的OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source== OleDbConnection dCon“+ fileName +”;
Properties=\"HDR=YES;Excel 12.0;IMEX=1\"");
使用此格式错误的连接时,可能无法识别IMEX属性。
有关可能的连接字符串语法选项(包括扩展属性的语法选项)的信息,请参阅this MS article。
https://stackoverflow.com/questions/13357526
复制相似问题