从SharePoint发送Excel文件至邮箱时格式/扩展名无效问题求助
核心问题定位
你用base64表达式替代原生动态内容的操作,大概率是导致文件损坏的原因。Excel属于二进制格式文件,错误的base64处理会破坏其内部结构,进而触发“文件格式或扩展名无效”的提示。
正确操作方案
方案1:直接使用原生动态内容(最简且稳妥)
- 在Get file content步骤中,确认已选中目标Excel文件的正确路径/ID
- 进入Send an email V2步骤,展开「高级选项」找到「附件」区域
- 点击「添加附件」,在「文件内容」处直接选择Get file content输出的「File Content」动态内容;「文件名」处选择该文件的「Name」动态内容(确保后缀为
.xlsx) - 全程不要手动编写任何
base64相关表达式,完全依赖原生动态内容完成对接
方案2:手动构造附件数组(适用于多附件场景)
如果需要手动组装附件数组,绝对不能将内容转为CSV(CSV是纯文本格式,会彻底破坏Excel的二进制结构),正确的数组格式如下:
[ { "Name": "@{outputs('Get_file_content')?['body/Name']}", "ContentBytes": "@{outputs('Get_file_content')?['body/$content']}" } ]
注意:ContentBytes直接引用Get file content返回的二进制内容即可,Power Automate会自动完成编码处理,无需额外操作。
额外验证项
- 检查Get file content的「文件标识符」是否指向正确的文件,避免读取错误内容
- 发送测试邮件后对比附件大小:如果附件远小于SharePoint中原文件的大小,说明内容读取或传递过程出现截断/错误
内容的提问来源于stack exchange,提问作者HRAnalyst
相关产品推荐
相关产品推荐

