You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Power Automate导入Excel日期由整数变日期的异常排查与修复咨询

问题:Power Automate中Excel日期列导入格式异常的排查与修复

背景

为某Excel工作簿配置了Power Automate流,每日解析任务表并向相关人员发送含未完成任务TaskDue Date列信息的邮件。流正常运行约1个月后,Due Date列的数据导入方式从**整数(Excel日期序列化值)**变为直接导入日期格式。

数据变化说明

  • 变化前:Create HTML Table操作的原始输入中,Due Date为整数格式
  • 变化后:Create HTML Table操作的原始输入中,Due Date为直接的日期格式

环境细节

  • Excel中Due Date列格式设为Short Date(显示为DD/MM/YYYY),单元格使用公式=IF(ISBLANK(Tasks!B131), "", Tasks!B131)引用另一工作表的Short Date列数据,为空则保持空白。
  • 查看Excel版本历史,列格式未发生变更。
  • 补充:若将Excel列改为General格式,流运行正常,邮件中日期显示为YYYY-MM-DD,但Excel中显示为整数,不符合业务需求。

流配置代码

Filter Array 配置

{
  "type": "Query",
  "inputs": {
    "from": "@outputs('List_rows_present_in_a_table')?['body/value']",
    "where": "@equals(item()?['Email'],items('Apply_to_each'))"
  }
}

Create HTML Table 配置

{
  "type": "Table",
  "inputs": {
    "from": "@body('Filter_array')",
    "format": "HTML",
    "columns": [
      {
        "header": "Description",
        "value": "@item()?['Task']"
      },
      {
        "header": "Due Date (Conv)",
        "value": "@if(empty(item()?['Due Date']),null,addDays('1899-12-30',int(item()?['Due Date']),'yyyy-MM-dd'))"
      }
    ]
  },
  "runAfter": {
    "Filter_array": [
      "Succeeded"
    ]
  }
}

已尝试的无效操作

重新格式化Excel列并重新运行流,问题未解决。


分析与解决方案

异常原因

  1. 连接器逻辑变更:微软可能调整了Excel Online连接器对日期类型的解析逻辑,原本返回序列化整数,现在直接返回格式化后的日期字符串或日期对象。
  2. 数据类型隐性变更:虽然列格式显示为Short Date,但引用源单元格的实际数据类型可能因编辑、批量操作等发生隐性变更,导致Power Automate识别为日期而非整数。
  3. 连接器缓存异常:Power Automate的连接器缓存了旧的数据类型,后续更新后未及时刷新,导致解析逻辑切换。

修复方案

方案1:兼容两种数据类型的表达式修改

修改Create HTML Table中Due Date (Conv)的value表达式,同时支持整数和日期格式的解析:

@if(empty(item()?['Due Date']), null, if(isInt(item()?['Due Date']), addDays('1899-12-30', int(item()?['Due Date']), 'yyyy-MM-dd'), formatDateTime(item()?['Due Date'], 'yyyy-MM-dd')))

逻辑说明:

  • 先判断日期是否为空,为空则返回null
  • 若为整数,按原逻辑转换为日期
  • 若为日期类型,直接格式化目标格式

方案2:重置Excel连接器

  1. 在Power Automate的数据 > 连接器中找到对应的Excel Online连接器
  2. 删除现有连接,重新创建连接并授权
  3. 更新流中List rows present in a table操作的连接为新创建的连接,重新测试

方案3:强制统一Excel数据类型

  1. 选中Due Date列,右键选择设置单元格格式,确认格式为Short Date
  2. 选中所有公式单元格,按F2再按Enter重新触发公式计算,确保数据类型统一
  3. 可尝试将列先转为General,再转回Short Date,强制刷新数据类型

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

火山引擎 最新活动