【发布时间】:2013-03-30 21:06:11
【问题描述】:
在使用导入和导出数据工具将数据从 Excel 导入 SQL Server 时发生了一件奇怪的事情。
不足之处是我可以在Excel中看到数据,但所有数据都没有导入。
我有一个包含一个电子表格的 Excel 工作簿。我可以看到列中的数据,一切看起来都很好。当我使用导入向导导入数据时,我可以看到列和预览数据,但是在执行导入时数据并没有全部传输过来。没有错误,导入过程完成——它只是将一堆空值插入到表中。
这似乎最常发生在数字上——假设我有三列分别表示名字、姓氏和 ID 号。我会得到所有的名字和姓氏,以及一些身份证号码。我找不到正在发生的事情的模式。
我以前发生过一次这种情况,我注意到在导入过程中有两个电子表格可供选择:DataImport 和 DataImport$ - 第一个会如上所述失败,而第二个会完美导入。这次只有一个电子表格可供选择。
我主要是在 64 位系统上使用 XLS 文档和 32 位导入向导,但我愿意尝试任何事情。
关于为什么有两个电子表格(有时)以及为什么这个导入会失败的任何想法?
戴夫
【问题讨论】:
-
您可以尝试复制确切的数据范围然后创建一个新的excel文件,但是在粘贴数据之前,您可以将新创建的excel文件的单元格格式设置为文本并尝试导入这个新文件。
-
我尝试将所有格式更改为一般文本,但没有帮助。我确实注意到一些数字字段有一个小三角形,表示相邻的单元格是数字,这是文本,所以我尝试将列格式更改为一种或另一种。不过,结果没有任何变化。我从未尝试将数据复制并粘贴到新的电子表格中,但我可以尝试一下。几分钟后我会告诉你情况如何。
-
不走运。复制和粘贴技巧不起作用。我注意到失败的列有三个正确的行,然后是一个应该是空白的行(对于那个 ID 列),然后什么都没有被导入(对于那个 ID 列)。另外,如果这很重要,我正在使用 Excel 2013。
-
如果不是2003,能否将其保存为2003文件再试一次。此外,在导入时,您是否可以检查列属性。 ID 列可以设置为非空。如果是这样,它将停止。
-
我一直使用 Excel 2003 文件格式 (XLS) 而不是 XLSX 文件,因为我发现它们更可靠。对于“非空”问题 - 这将在数据库架构中而不是 Excel 文件中,对吗?在这种情况下,我预计会引发错误并且不会导入更多行,但没有错误,会导入更多行,但该 ID 列中没有任何值。
标签: sql-server excel import