【问题标题】:Reading in Multiple Excel sheets with OLEDB, but getting different Data Types - How to Fix?使用 OLEDB 读取多个 Excel 工作表,但获得不同的数据类型 - 如何修复?
【发布时间】:2013-01-11 18:36:10
【问题描述】:

我创建了一个子程序,它使用Microsoft.ACE.OLEDB.12.0 数据提供程序将 Excel .xlsx 工作簿中的所有工作表读取到数据集中的单独数据表中。

现在,我有一个包含多个工作表的工作簿 - 所有工作表都有相同的列名 - 我想要做的是,一旦它们全部加载到数据集中,将它们全部合并到一个大数据表中。

我的问题是,即使所有工作表都有相同的列,但根据每个工作表中的数据,有时相同的列会得到 Double 数据类型,而其他时候他们会得到不同的 String 数据类型数据集的表,所以,Merge 函数给了我一个错误。

我该如何解决这个问题?有没有办法提前将 Column 数据类型设置为字符串,或者有没有办法在合并时忽略列类型,或者有更好的方法来完全解决这个问题?

谢谢。

【问题讨论】:

    标签: c# .net vb.net


    【解决方案1】:

    我以前用过这个。我试图主要从记忆中去。您可以设置一个名为 TypeGuessRows 的注册表项。这将禁止猜测 Excel 的类型。

    此外,尝试在您的 ACE 连接字符串中添加 IMEX 参数。

    其他说明:这可能是一个重复的问题。

    编辑: 来自 Google,注册表位置:http://support.sas.com/kb/31/765.html

    另一个非常有用的帖子:Reading Excel InterMixed DataType Without Modifying Registry Key

    【讨论】:

    • 谢谢! - 我有 IMEX,但它仍然在制造问题......至于 reistry 条目 - 我看到了,但希望有一个更好的解决方案,而不是不得不搞乱它(非常感谢 elink !!)并且在另一个链接上提出的解决方案实际上很酷,但依赖于具有标题列的数据,这可能并不总是如此......我希望有更通用的东西,但也许它无法完成...谢谢!!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    相关资源
    最近更新 更多