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

Power Automate:验证邮件附件Excel与SharePoint Excel内容是否一致

方案可行性与实现细节

这个需求完全可行,核心思路是通过对比两个文件内容的SHA256哈希值来判断是否一致——只要文件内容有任何差异(哪怕是单行数据不同、格式微调),哈希值就会完全不同,能精准匹配你的需求。

具体实现步骤(在「Create File」操作前插入)

1. 检查SharePoint目标文件是否存在

  • 添加「List files in folder」操作,选择目标SharePoint站点和文档库,设置文件夹路径(文件直接在根目录则留空)。
  • 添加「Filter array」操作,输入「List files in folder」的输出,过滤条件设为Name等于邮件附件的文件名(triggerBody()?['Attachments']?[0]?['Name'])。
  • 插入第一个「Condition」,判断过滤后的结果是否为空:
    • 如果为空(文件不存在):直接跳转到「Create File」操作,完成首次上传。
    • 如果不为空(文件已存在):继续执行后续对比步骤。

2. 获取并计算新旧文件的哈希值

  • 获取现有文件内容:添加「Get file content」操作,文件路径选择「Filter array」输出的第一个文件的Path。
  • 计算新附件哈希值:添加「Compose」操作(命名为「新文件哈希」),输入表达式:
    sha256(triggerBody()?['Attachments']?[0]?['ContentBytes'])
    
  • 计算现有文件哈希值:添加另一个「Compose」操作(命名为「现有文件哈希」),输入表达式:
    sha256(body('Get_file_content')?['$content'])
    

3. 对比哈希值并执行对应逻辑

  • 插入第二个「Condition」,判断「新文件哈希」是否等于「现有文件哈希」:
    • 如果相等:说明内容完全一致,添加「Terminate」操作,状态选择「Succeeded」,终止流不执行后续操作。
    • 如果不相等:继续执行「Create File」操作,记得勾选操作面板里的「覆盖已存在的文件」选项,直接替换旧文件。

补充注意事项

  • 文件名不固定的场景:如果邮件附件的文件名可能变化,提前定义好SharePoint上的目标文件名(比如固定命名为「数据报表.xlsx」),在「Create File」时指定固定文件名即可。
  • 哈希计算的可靠性:SHA256哈希算法几乎不会出现碰撞,完全能满足你对内容一致性判断的要求。
  • 错误处理:给「Get file content」操作设置「Configure run after」,勾选「Failed」和「Skipped」,当文件不存在时自动跳转到「Create File」,避免流因错误中断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 21:03:25