9

其他人有没有同样的问题,当您从 Excel 文件导入数据到 MSSQL Server 2005 时,如果某些列包含主要是数字数据,但即使您将列类型设置为 varchar,向导也无法导入那些无法解析的字段作为数字?

4

6 回答 6

17

试试这个(注意:这些说明基于 Excel 2007)...

以下步骤应强制 Excel 将列视为文本:

使用 Excel 打开电子表格。

通过单击列标题选择包含“主要是数字数据”的整个列。

单击功能区菜单上的数据选项卡。

选择文本到列。这将打开将文本转换为列向导。

-在第 1 步:单击下一步

-在第 2 步:单击下一步

-在第 3 步:选择文本并单击完成

保存您的 Excel 工作表。

使用 SQL Server 2005 导入数据向导重试导入。

于 2009-04-23T01:25:19.160 回答
5

您需要编辑 SSIS 使用的连接字符串。将此添加到字符串“IMEX=1;”的末尾 (无引号)这告诉 SSIS/jet 不要试图弄清楚数据类型是什么。只需导入它们。

于 2009-05-12T02:40:25.260 回答
4

您可以尝试调整 Jet 设置以导入 Excel 数据。在给定导入期间尝试确定列类型时,您可以强制 Jet 引擎对整个工作表进行采样。更改以下注册表项(先备份后),看看是否不这样做:

HKLM\Software\Microsoft\Jet\4.0\Engines\Excel

或者在 x64 上

HKLM\Software\Wow6432Node\Microsoft\Jet\4.0\Engines\Excel

将值 TypeGuessRows 设置为零。这将强制 Jet 对所有行进行采样以确定列类型。

于 2010-03-17T05:48:04.710 回答
0

创建一个新列,它是一个撇号 + 要导入的列的内容。这将迫使它成为一个字符串

="'"&E2

于 2009-07-16T16:52:16.483 回答
0

在 HDR 设置对我有用之前添加 IMEX=1 。

于 2013-03-01T15:51:09.343 回答
0

这是最好的解决方案:

  1. 单击功能区菜单上的文件,然后单击选项。

  2. 单击高级,然后在计算此工作簿时,选中将精度设置为显示复选框,然后单击确定。

  3. 单击确定。

  4. 在工作表中,选择要设置格式的单元格。

  5. 在主页选项卡上,单击数字旁边的对话框启动器按钮图像。

  6. 在类别框中,单击数字。

  7. 在小数位数框中,输入要显示的小数位数。

于 2016-07-12T13:29:59.730 回答