SSIS excel源文件值未正确传输

时间:2018-06-14 16:40:17

标签: excel types ssis

我有一个excel文件(用户输入),我想将数据附加到另一个excel文件。

我有2列“当前余额”和“上次购买”,它们都是金额,浮动数据类型。

我创建了一个包含excel源和Excel目标的数据流任务。

问题在于,对于“当前余额”,每个单元格的值都被正确传递,但对于“上次购买”,金额将在excel文件中显示并作为实际值进行转移。

一个例子:

表示excel

中显示的以下值
     Current Balance         Last Purchase
     6.137.736,73            
     15.634.073,28          
     15.015.015,02           15064084,69
     11.397.691,51
     24.764.305,42           23952682,99

这是ssis数据查看器显示值的方式:

     Current Balance         Last Purchase
     6137736.7259
     15634073.28138
     15015015.0157           15064084,69
     ....

目标文件的预期值应为:

       Current Balance         Last Purchase
       6137736.7259
       15634073.28138
       15015015.0157           15064084,684578
       .... 

我没有访问源excel文件。 有什么方法可以解决这个问题吗?如果我使用scitp组件加载文件怎么办?

如果需要任何其他信息,请提出要求。

提前谢谢你。

1 个答案:

答案 0 :(得分:0)

使用SSIS将数据从Excel传输到数据库可能是一项繁琐的工作。

使用SSIS导入excel文件时,默认情况下会读取实际显示的值。

但是,您可以通过向连接字符串添加提示来覆盖它。

将“扩展属性=”Excel 12.0 Xml; HDR = YES; IMEX = 1“'添加到您的连接字符串中,SSIS将在导入数据时将每个单元格读取为文本。 这适用于Excel 2007,2010,2013(尚未测试2016)

使用强大的导入向导,可以采用另一种“懒惰”方式:

将目标表的所有列的数据类型设置为varchar。 设置连接时使用强大的导入向导,并将所有列分类为文本。

这应该基本上达到相同的结果