将这些带有空行的Excel文件导入SQLServer 2005表是一个问题

时间:2011-02-18 07:21:20

标签: sql-server-2005

我正在使用openrowset()函数将Excel文件导入临时SQLServer 2005表。

在大多数情况下都可以正常工作。但是,如果Excel文件的前10行为空,则将剩余的非空行导入为空。

以前是否有人遇到此问题?有关如何克服它的任何想法?

1 个答案:

答案 0 :(得分:0)

这是由OLEDB驱动程序如何确定Excel中的数据类型引起的。默认情况下,它会扫描前8行以确定字段的数据类型。

  • 您以前可以在连接字符串中设置“MaxScanRows”,以配置要在工作表中扫描的行。不幸的是,这个设置不再适用于Jet 4.0。现在强制它的唯一方法是设置注册表项[HKLM \ Software \ Microsoft \ Jet \ 4.0 \ Engines \ Excel \ TypeGuessRows]。可能的值为1-16或0以扫描整个文件。
  • 还有IMEX设置(表示ImportMixedTypes)当您将其设置为1时,表示“ImportMixedTypes = Text”。这解决了很多问题,因为驱动程序根据它找到的特定类型的值确定数据类型。