数据工厂无法从 Blob 存储读取 .xlsx 文件

问题描述 投票:0回答:1

我们正在尝试建立一个 Azure 数据工厂管道,从大约 30 张的 .xlsx 文件中读取数据,然后将该数据传递到 Snowflake 表中。

我们遇到的问题是,我们可以连接到包含 .xlsx 文件的 Blob 存储,但选择该文件时会返回以下错误:

Only '.xls' and '.xlsx' format is supported in reading excel file while error is '   at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
   at NPOI.SS.Util.SimpleDateFormat.ParseObject(String source, Int32 pos)
   at NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetDateValue(String s)
   at NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetCreatedProperty(String created)
   at NPOI.OpenXml4Net.OPC.Internal.Unmarshallers.PackagePropertiesUnmarshaller.Unmarshall(UnmarshallContext context, Stream in1)
   at NPOI.OpenXml4Net.OPC.OPCPackage.GetParts()
   at NPOI.OpenXml4Net.OPC.OPCPackage.Open(Stream in1)
   at NPOI.Util.PackageHelper.Open(Stream is1)
   at NPOI.XSSF.UserModel.XSSFWorkbook..ctor(Stream is1)
   at Microsoft.DataTransfer.ClientLibrary.ExcelUtility.GetExcelWorkbook(String fileExtension, TransferStream stream)'.
String was not recognized as a valid DateTime.

我们没有要求它将任何内容定义为日期时间,并且它无法正确读取 .xlsx 来确定工作表名称等。例如,我们要导入的工作表之一只有 3 行和 5 列,所以看起来就像当我们不需要每张纸时,它会卡在读取整个 .xlsx 文件上。

有人遇到过这个问题并有解决方法吗?我们无法修改 .xlsx 文件,因为它是通过 Blob 存储从第三方源提供的。我们希望能够读取它并将其中的数据处理到已设置为接受数据的雪花表中。该部分已手动完成,只是 ADF 难以读取 .xlsx 文件。

我尝试在 ADF 连接中定义工作表名称,但仍然失败。我尝试在 ADF 连接中定义图纸编号,但失败。似乎无论我们做什么,ADF 都无法读取这个 .xlsx 文件,尽管它应该能够读取。我可以在本地打开该文件,并且数据没有问题。

任何帮助或指示都会很棒!

附件是 ADF 中 Blob 存储连接的图片,显示了与 .xlsx 文件的连接

enter image description here

这是文件名,其格式为 AAA_AAA_Changes_YYYY-MM-DD_YYYY-MM-DD_Relational.xlsx

enter image description here

azure-data-factory azure-blob-storage
1个回答
0
投票

enter image description here

由于 Excel 工作表是通过 Blob 存储从第三方来源提供的,因此即使具有 .xlsx 扩展名,它也可能采用不同的格式。这可能是出现上述错误的原因。将文件下载到本地环境后,检查文件的属性。如果文件是 excel 格式且扩展名为 .xlsx.xls ,则加载工作表时不会出现错误,如下所示:

enter image description here

更多信息可以参考MS文档

© www.soinside.com 2019 - 2024. All rights reserved.