我正在使用OleDbDataAdapter(准确地说是Microsoft.ACE.OLEDB.12.0)从Excel工作簿中检索数据.对于一个表,我正在使用类型化的数据集,但是对于另一个表,由于列数未知(Excel模板可能会生成额外的列),所以我不能这样做.
问题是,如果某人在列中输入太多数字值,则“ JET”似乎假定它是一个数字列,并且不再加载文本值.我知道您可以更改模板并为该列设置特定的数据类型,但是模板已经广泛使用,因此我宁愿在导入期间解决它.
现在,我尝试的是首先计算使用的列数,并准备一个具有定义的Columns集合的新DataTable,并将其DataType属性设置为typeof(string).可悲的是,JET似乎并没有考虑这一点,而是选择了自己的方式.我猜测即使我可以在此处使用强类型数据集,也无济于事…
有谁知道如何告诉JET如何导入数据,这样我就不必面对交付新模板版本的负担了吗?
请*请*:不要提供Excel自动化解决方案…
解决方法:
如果您有权访问注册表,请设置TypeGuessRows = 0和/或ImportMixedTypes = Text.看到这里更多信息INITIALIZATION SETTINGS