首页 > 解决方案 > 如何阻止 Excel 在 azure datafactory 管道中将数字更改为零?

问题描述

我正在 AZURE 数据工厂中执行复制活动,以将 CSV 文件复制到数据湖。CSV 文件第一列由 16 位数字组成(Excel 仅支持 15 位数字)。原始文件包含 2021370111105759,但在复制到 datalake 后,它显示为 2021370111105750(最后一位归零)。请任何人提出解决方案。

注意:从数据湖下载 CSV 文件后,我们可以在记事本中看到 16 位数字,但在 excel 中看不到

标签: azureazure-functionsazure-pipelinesazure-data-factoryazure-data-factory-2

解决方案


由于您可以在记事本中正确查看它,因此 ADF 复印似乎没有问题。但是,您可以使用使用数据流的配置派生列作为解决方法。

问题再现...

我也尝试过,如果没有明确提及类型,您可以使用数据流自动检测数据类型。

在此处输入图像描述

在此处输入图像描述

但是,从接收器下载文件后,在 excel 中打开时如下所示:

在此处输入图像描述

解决方法...

在数据流中使用Derived column并设置如下表达式,即将单个引号添加到您的列值。

concat('\'',id)

在此处输入图像描述

在此处输入图像描述

在本地下载并打开后:

在此处输入图像描述

注意:如果您不使用 ADF,而只是在本地将此类数据存储在 excel 中,请选择要输入超过 15 位数字的单元格,然后按 Ctrl + 1 显示“设置单元格格式”对话框。在弹出的单元格格式对话框中,在数字选项卡下,从类别列表中选择文本,如下所示:

在此处输入图像描述


推荐阅读