从Excel中插入数据集时,数据截断255个字符后填充DataTable时没有问题

我正尝试使用ADO.NET将Excel文件中的数据插入到数据集中。 以下是通过的程序

  1. 首先,所有的Excel数据都被加载到数据集中

connString =“Provider = Microsoft.ACE.OLEDB.12.0; Data Source = mydb.xlsx; Extended Properties = \”Excel 12.0; HDR = Yes; IMEX = 2 \“”;

  1. 填充数据集时只能插入255个字符。 (我找不到截断的地方)。 在我们的源代码中没有截断的代码。 但是,当使用相同的连接来填充数据表时,不会出现这样的问题。

请帮我解决这个问题

提前致谢

问题是,当您填充数据集时,ACE驱动程序正在为该列推断TEXT数据types。 文本列限制为255个字符。 您需要强制它使用MEMO数据types。 在填充数据库时,大概数据库列是支持超过255个字符的types,驱动程序将其选中。

除了在这个线程中讨论的问题的方法外 ,还可以强制它使用备注数据types,方法是插入一个虚拟行数据,并在该列的单元格中插入256个或更多个字符。 (该线程涉及Jet,但也应该适用于ACE。)

也许最好的select是使用其他库来读取文件并在没有Jet / ACE的情况下填充DataSet。

你被截断的方式有些模糊,但从下面有几个可能: –

  • 工作表大小65,536行× 256列
  • 列宽度为255个字符

从这里:-

http://office.microsoft.com/en-us/excel-help/excel-specifications-and-limits-HP005199291.aspx

工作表和工作簿规范

function最大限制
打开工作簿由可用内存和系统资源限制
工作表大小65,536行× 256列
列宽度为255个字符
行高409点
分页符1000水平和垂直
单元格内容的长度(文本)32,767个字符。 单元格中只显示1024个 所有32,767显示在公式栏中。
工作簿中的表格受可用内存限制(默认为3张)
工作簿中的颜色56
单元格样式在工作簿4,000
在工作簿中命名视图受可用内存限制
自定义数字格式在200和250之间,取决于您安装的Excel的语言版本。
工作簿中的名称受可用内存的限制
Windows中的工作簿受系统资源限制
在一个窗口中的窗格4
链接的页面受可用内存限制
情况受限于可用内存; 总结报告仅显示前251个情景
更改场景中的单元格32
Solver 200中的可调节单元
自定义function受可用内存的限制
缩放范围从10%到400%
报告受限于可用内存
在一个sorting中对引用3进行sorting; 使用顺序sorting时无限制
撤消级别16
数据表单中的字段32
工作簿中的自定义工具栏受可用内存限制
自定义工具栏button受可用内存限制

这是问题的原因 – https://support.microsoft.com/en-us/kb/189897

它可以通过在顶部插入一个虚拟的行(也许是一个标题行 – 我没有试过这个自己)来修复,并且有255个或更多的字符。

这似乎是一个有前途的解决scheme。