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

Power Apps中批量处理集合SVG URI生成独立SVG及动态获取PageNo

问题解决方案

一、修复SVG集合的创建(独立存储每个Page的SVG URI)

原代码的问题是把所有Page的SVG URI打包成单条记录里的数组,导致后续批量处理无法区分独立文件;同时Filter(Coords,PageNo=1)用了固定值,需替换为动态获取当前循环的PageNo。

修改后的代码:

ClearCollect(
    SVGCollection,
    ForAll(
        // 获取所有不重复的PageNo,每条记录对应一个Page
        Distinct(Coords, PageNo) As PageRecords,
        {
            // 新增文件名标识,方便后续生成独立文件
            FileName: "Page_" & PageRecords.Value & ".svg",
            SVGUri: "data:image/svg+xml," & EncodeUrl(
                "<svg height='100%' width='100%' viewBox='2 400 2000 180' xmlns='http://www.w3.org/2000/svg'>" &
                Concat(
                    // 动态筛选当前循环的PageNo对应的坐标数据
                    Filter(Coords, PageNo = PageRecords.Value),
                    "<text x='" & Left & "' y='" & Top & "' font-family='Arial' font-size='16' fill='black'>" & Text & "</text>"
                ) & "</svg>"
            )
        }
    )
);

修改说明:

  • 直接用ForAll生成SVGCollection的每条记录,每个记录对应一个Page的SVG URI和文件名
  • 用As PageRecords给Distinct结果命名,通过PageRecords.Value动态获取当前循环的PageNo,替代原代码的固定值1
  • 新增FileName字段,后续在Power Automate中可直接用于命名SVG文件

二、Power Automate批量生成独立SVG文件并邮件发送

步骤1:创建触发流

选择Power Apps作为触发器,接受来自Power Apps的SVGCollection参数(类型选数组)

步骤2:初始化附件数组变量

添加初始化变量动作,变量名设为SVGAttachments,类型选数组,初始值为空数组

步骤3:循环处理每个SVG记录

添加Apply to each动作,选择触发参数里的SVGCollection作为循环对象,在循环内依次添加以下动作:

  1. Compose:处理SVG URI,去掉前缀。输入表达式:
    replace(items('Apply_to_each')?['SVGUri'], 'data:image/svg+xml,', '')
    
    (若URI经过编码,需解码:decodeUriComponent(replace(items('Apply_to_each')?['SVGUri'], 'data:image/svg+xml,', '')))
  2. Create file:在OneDrive/SharePoint创建临时SVG文件
    • 站点地址/文件夹路径:选择临时存储位置
    • 文件名称:items('Apply_to_each')?['FileName']
    • 文件内容:选择上一步Compose的输出
  3. Append to array variable:将创建好的文件添加到SVGAttachments数组,输入对象:
    {
        "Name": "@items('Apply_to_each')?['FileName']",
        "ContentBytes": "@body('Create_file')?['$content']"
    }
    

步骤4:发送邮件

添加Send an email (V2)动作,在附件部分选择之前初始化的SVGAttachments变量,填写收件人、主题等字段完成配置

关键说明

  • 先将所有文件收集到数组变量,再一次性添加到邮件附件,避免文件合并问题
  • 可在邮件发送后添加Delete file动作清理临时文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 04:00:20