问题描述
TL;DR:我想从 Outlook 邮件中提取 Excel 附件,在未处理的报告上自动执行 Excel 脚本,然后在新电子邮件中发送输出。
- 我收到来自 Amazon 的报告,显示我每个月都发送到 Outlook 文件夹中的特定电子邮件。
- 我将 Power Automate 设置为在此文件夹中收到带有附件的电子邮件时触发。
- 我想获取此 Outlook 电子邮件中的附件并运行我在 Excel Desktop 上构建的 Excel 脚本(不是 Excel 应用程序宏)来格式化数据。
- 然后我想将输出/结果(脚本化的电子邮件附件)作为电子邮件正文发送给客户。
我已经运行了第一部分和最后一部分,但是我无法让脚本来处理文件,这个阶段总是会破坏自动化。
我认为可能导致问题的原因:
- 是否需要从电子邮件中提取附件并将其另存为文件,然后才能在其上运行 Excel 脚本?
- 附件是否需要通过 Share Point 保存以便以后 Excel 脚本引用?
- 脚本是否需要与之前的步骤在相同或不同的卡片上?
我见过人们通过 Scope 运行 Excel 脚本。 我还查看了所有可用的 YouTube 视频以解决此问题:有些视频会检查过程中的某些步骤,但我很难将所有内容串在一起。
我尝试过的其他事情
我还尝试构建一个与 Excel 桌面自动化功能相同的宏,然后编写 VBA 代码,以便每次打开新工作表时都会运行相同的宏来处理数据。但是我无法让它在我打开的任何新的未来工作表上运行,即使在模块和本工作表中编写 VBA 自动打开代码也是如此。
我愿意接受任何可以使这项工作发挥作用的方法。
解决方法
获取电子邮件 (V2) - 消息 ID
@{triggerOutputs()?['body/id']}
应用于每个 - 从前面的步骤中选择一个输出
@{outputs('Get_email_(V2)')?['body/attachments']}
创建文件 - 文件名
@{items('Apply_to_each')?['name']}
创建文件 - 文件内容
@{items('Apply_to_each')?['contentBytes']}
移动或重命名文件 - 文件(确保为目标文件路径添加 .xlsx)
@outputs('Create_file')?['body/Id']
运行脚本 - 文件
@outputs('Move_or_rename_a_file')?['body/Id']
获取文件内容 - 文件
@outputs('Move_or_rename_a_file')?['body/Id']
发送电子邮件 (V2) - 附件 Name-1
@outputs('Move_or_rename_a_file')?['body/DisplayName']
发送电子邮件 (V2) - 附件内容 - 1
@body('Get_file_content')?['body']