Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SSIS-Excel数据显示为科学符号和空值_Sql Server_Excel_Ssis_Etl - Fatal编程技术网

Sql server SSIS-Excel数据显示为科学符号和空值

Sql server SSIS-Excel数据显示为科学符号和空值,sql-server,excel,ssis,etl,Sql Server,Excel,Ssis,Etl,我有一些包含科学数字的excel数据,如5e+00。 当用户通过单击“编辑”按钮在excel中查看值时,我可以看到完整的值。但当我将数据导入表时,我得到的数据加载为Null。我需要导入数据而不在excel中进行任何更改。请建议如何在SSIS中执行此操作 我尝试通过在excel端更改格式来导入。我希望它在ssis级别完成,而不在excel中进行任何更改 我列中的数据为 Amounts 15880 5e+19 57892 我希望输出应该如下所示 1588007 500000000019 57892

我有一些包含科学数字的excel数据,如
5e+00
。 当用户通过单击“编辑”按钮在excel中查看值时,我可以看到完整的值。但当我将数据导入表时,我得到的数据加载为
Null
。我需要导入数据而不在excel中进行任何更改。请建议如何在SSIS中执行此操作

我尝试通过在excel端更改格式来导入。我希望它在ssis级别完成,而不在excel中进行任何更改

我列中的数据为

Amounts
15880
5e+19
57892
我希望输出应该如下所示

1588007
500000000019
57892
但我得到了第二项的空值


请提出建议。

在上述问题中,有两个问题:

  • 数字以科学形式显示
  • 导入时,数据将替换为空值
  • 科学格式问题 你提到:

    我尝试通过在excel端更改格式来导入。我希望它在SSIS级别完成,而不在excel中进行任何更改

    不幸的是,如果不更改Excel文件,则无法执行此操作,因为解决此问题的唯一方法是更改单元格的数字格式属性。您可以通过添加脚本任务来自动化此步骤,该脚本任务使用
    Microsoft.Office.Interop.Excel.dll
    assembly来自动化此过程,而不是从Excel手动执行此过程

    您可以参考以下文章作为示例:

    但一定要使用:

    m_XlWrkSheet.Columns(1).NumberFormat = "0"
    
    强制使用数字格式

    空值问题 此问题是由用于读取Excel文件的OLE DB提供程序引起的。当Excel列包含混合数据类型时,会发生此错误,OLE DB提供程序读取具有主要数据类型的值,并将所有其他值替换为空值

    有关更多信息/解决方法,请参阅以下链接:


    非常确定您没有正确映射数据。假设我只有一列。没有映射问题显示屏幕截图。@rvphx我认为这不是映射问题,这是OLE DB提供程序的限制。请查看我的答案以了解更多详细信息。