使用Microsoft.Ace.Oledb.12.0提供程序时,数据在255个字节后被截断

n0t*_*ing 3 .net c# sql-server excel vba

我正在使用ACE提供程序读取Excel工作表,并且某些单元格包含的数据大于255个字节。我尝试更改注册表设置中的TypeGuessRows,以及从连接字符串中进行设置。我仍然在代码中得到了截断的值。我无法重组Excel工作表或使用其他提供程序。我运行64位Windows。我的办公室版本是2013年。

这是我的连接字符串;对于数据<255字节的那些单元,它工作正常。

var connectionString = string.Format("provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=\"Excel 12.0;IMEX=1;HDR=YES;TypeGuessRows=0;ImportMixedTypes=Text\"");
Run Code Online (Sandbox Code Playgroud)

有什么办法吗?提前致谢。

Axi*_*ili 5

我也在Microsoft.ACE.OLEDB.12.064位Windows 7上使用。

我发现TypeGuessRows连接字符串中的无效。

但是TypeGuessRows在以下注册表位置中增加可以起作用:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Office \ 12.0 \ Access Connectivity Engine \ Engines \ Excel

关于类似错误的更多信息(尽管您可能已经知道了这一点,因为您已经在尝试更改TypeGuessRows)


fab*_*aby 1

请参考此链接。我认为这就是问题所在(尝试使用备注字段)

http://allenbrowne.com/ser-63.html

在 Access 表中,文本字段限制为 255 个字符,但备注字段可以处理 64,000 个字符(大约 8 页单倍行距文本)

很好的解决方法:看看这个堆栈答案