You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Data Factory无法读取Blob存储中第三方.xlsx文件的解决问询

问题描述

我们正在搭建Azure Data Factory(ADF)管道,读取Blob存储中包含约30个工作表的第三方.xlsx文件,并将数据导入Snowflake表。目前已成功连接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.

我们未指定任何日期类型,但ADF无法正常读取文件以识别工作表名称等信息,即使指定工作表名或编号仍失败。本地打开文件无异常,推测是某工作表中DDMMMYYYY:HH:MM:SS格式的字符串被ADF误判为日期导致解析失败。因文件来自第三方无法修改,寻求解决方法。

注:已确认ADF中Blob存储连接正常,可访问目标文件,文件名格式为AAA_AAA_Changes_YYYY-MM-DD_YYYY-MM-DD_Relational.xlsx

可行解决方法
  • Azure Function预处理文件:编写C#或Python的Azure Function,读取Blob中的xlsx文件,修复文件属性里的创建日期格式(错误栈显示是PackageProperties的Created属性解析失败,并非工作表数据),或用EPPlus等库重新保存文件修正属性问题,再将处理后的文件存入Blob供ADF读取。
  • 切换ADF文件读取逻辑:放弃ADF原生Excel连接器,改用Blob存储连接器+复制活动的二进制格式将文件下载到集成运行时本地,再通过自定义活动调用Python脚本(用pandas等库自定义日期解析规则)读取文件,处理后写入Snowflake。
  • 调整集成运行时区域设置:将自托管集成运行时的系统区域设置改为匹配文件日期格式的区域(如英语(英国)),可解决NPOI库的日期解析兼容性问题。
  • Snowflake外部表直接读取:配置Snowflake与Azure Blob的集成,创建外部表直接读取xlsx文件,利用Snowflake的日期解析能力处理格式问题,再通过ADF同步外部表数据到目标表。

内容的提问来源于stack exchange,提问作者MikeLanglois

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 07:37:23