其他人有没有同样的问题,当您从 Excel 文件导入数据到 MSSQL Server 2005 时,如果某些列包含主要是数字数据,但即使您将列类型设置为 varchar,向导也无法导入那些无法解析的字段作为数字?
6 回答
试试这个(注意:这些说明基于 Excel 2007)...
以下步骤应强制 Excel 将列视为文本:
使用 Excel 打开电子表格。
通过单击列标题选择包含“主要是数字数据”的整个列。
单击功能区菜单上的数据选项卡。
选择文本到列。这将打开将文本转换为列向导。
-在第 1 步:单击下一步
-在第 2 步:单击下一步
-在第 3 步:选择文本并单击完成
保存您的 Excel 工作表。
使用 SQL Server 2005 导入数据向导重试导入。
您需要编辑 SSIS 使用的连接字符串。将此添加到字符串“IMEX=1;”的末尾 (无引号)这告诉 SSIS/jet 不要试图弄清楚数据类型是什么。只需导入它们。
您可以尝试调整 Jet 设置以导入 Excel 数据。在给定导入期间尝试确定列类型时,您可以强制 Jet 引擎对整个工作表进行采样。更改以下注册表项(先备份后),看看是否不这样做:
HKLM\Software\Microsoft\Jet\4.0\Engines\Excel
或者在 x64 上
HKLM\Software\Wow6432Node\Microsoft\Jet\4.0\Engines\Excel
将值 TypeGuessRows 设置为零。这将强制 Jet 对所有行进行采样以确定列类型。
创建一个新列,它是一个撇号 + 要导入的列的内容。这将迫使它成为一个字符串
="'"&E2
在 HDR 设置对我有用之前添加 IMEX=1 。
这是最好的解决方案:
单击功能区菜单上的文件,然后单击选项。
单击高级,然后在计算此工作簿时,选中将精度设置为显示复选框,然后单击确定。
单击确定。
在工作表中,选择要设置格式的单元格。
在主页选项卡上,单击数字旁边的对话框启动器按钮图像。
在类别框中,单击数字。
在小数位数框中,输入要显示的小数位数。