导入数据向导不喜欢数据类型我选择列

时间:2009-04-23 00:04:26

标签: sql-server-2005 ssis import-from-excel

当您将数据从Excel文件导入MSSQL Server 2005时,如果某些列主要包含数字数据,但是即使您将列类型设置为varchar,向导也无法导入那些字段无法解析为数字?

6 个答案:

答案 0 :(得分:17)

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

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

使用Excel打开电子表格。

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

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

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

- 在步骤1:单击下一步

- 在第2步:点击下一步

- 在步骤3:选择文本,然后单击完成

保存Excel表格。

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

答案 1 :(得分:5)

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

答案 2 :(得分:4)

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

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

或者在x64上

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

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

答案 3 :(得分:0)

创建一个新列,即撇号+要导入的列的内容。这会强制它成为一个字符串

= “'” &安培; E2

答案 4 :(得分:0)

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

答案 5 :(得分:0)

这是最好的解决方案:

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

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

  3. 单击“确定”。

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

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

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

  7. 在小数位数框中,输入小数位数 你想要展示。