【问题标题】:Remove Excel column formatting while data import in SSIS在 SSIS 中导入数据时删除 Excel 列格式
【发布时间】:2017-05-24 17:40:44
【问题描述】:

我有一个 Excel 文件,它在小数列上应用了自定义格式。自定义格式没有任何小数位,但我实际上需要带有小数位的“原样”数据,并使用 SSIS excel 源将其保存在数据库中。

目前,excel 源预览不带小数的数据并加载带格式的数据。我需要excel源来获取非格式化数据。

PS:修改 Excel 文件对我来说不是一个选项,因为这些文件每天都来自不同的来源,而且我有一堆 1000 多个过时的文件要加载到数据库中。

我们可以在 SSIS 脚本任务中删除 Excel 列格式吗?

这是一个问题示例:我有一列具有自定义格式和显示为 4,300 的值。实际值为 4300.2457。在使用 Excel 源导入此数据时。 Excel 源将值导入为 4,300 而不是 4300.2457。

【问题讨论】:

  • 您能举个例子,您现在看到的行为是什么,以及您希望它变成什么样子?
  • 我有一列具有自定义格式和显示为 4,300 的值。实际值为 4300.2457。在使用 excel 源导入此数据时。 excel 源将值导入为 4,300 而不是 4300.2457。

标签: excel ssis formatting


【解决方案1】:

也许您可以使用数据转换组件。

您可以按原样使用 excel 列。

然后,您放置组件,然后您可以为该列选择所需的数据类型。

【讨论】:

  • 数据转换任务在excel源任务之后。在我可以执行数据转换任务时,数据已经被修剪了。
【解决方案2】:

右键单击 Excel 源并进入高级编辑器。

转到输出列,找到有问题的列,并将其 DTS 数据类型更改为十进制类型。也给它所需的精度。

【讨论】:

  • 试过了,但这行不通,因为 excel 源没有从 excel 中获取原始值。相反,它正在加载完全没有小数位的格式化值。
  • 你怎么知道它是从源加载的?你看到什么表明了这一点?
  • 我可以在预览窗口中看到加载的数据没有小数位。
【解决方案3】:

我最终不得不使用脚本任务通过 OLEBDB 连接手动导入 excel 数据。它确保从单元格中导入原始值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 2015-06-18
    相关资源
    最近更新 更多