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

Power Automate循环提取Azure文档处理发票数据的valueString/valueNumber

从Azure文档处理服务发票数据中提取valueString/valueNumber的简便方法

一、先理清数据结构

你拿到的发票数据里,Items.valueArray是一个数组,每个元素的valueObject里的字段(比如Amount)有两种结构:要么带valueNumber(数字类型),要么带valueString(字符串类型),我们的目标是不管哪种结构,都能把对应的值取出来。

二、Power Automate里的实操方法

1. 先循环遍历所有发票项

添加「应用到每一个」动作,把Items.valueArray选成要循环的对象,这样就能逐个处理每个发票条目。

2. 用表达式一键提取对应值

针对每个字段(比如Amount、Description),用coalesce函数就能自动取到存在的那个值,不用写复杂的条件判断:

  • 提取Amount值的表达式:

    coalesce(items('应用到每一个')?['valueObject']?['Amount']?['valueString'], items('应用到每一个')?['valueObject']?['Amount']?['valueNumber'])
    

    这个函数的逻辑是:先找valueString,有就用它;没有就用valueNumber,完美适配两种结构。

  • 如果需要把结果统一转成字符串(比如数字转成文本格式),套个string()就行:

    string(coalesce(items('应用到每一个')?['valueObject']?['Amount']?['valueString'], items('应用到每一个')?['valueObject']?['Amount']?['valueNumber']))
    

3. 批量处理多个字段更高效

如果要一次性提取Amount、Description等多个字段,用「选择」动作更省事:

  • 把「选择」动作的输入设为Items.valueArray,然后在映射里逐个设置字段:
    • 键填Amount,值填上面的提取表达式
    • 键填Description,值换一下字段名就行:coalesce(item()?['valueObject']?['Description']?['valueString'], item()?['valueObject']?['Description']?['valueNumber'])
      做完之后,「选择」动作会直接输出整理好的数组,每个元素都包含你要的字段值。

三、偷懒小技巧

你看每个字段里还有个text字段,不管是数字还是字符串类型,这个字段都是字符串形式的结果,如果它和value值是一致的,直接取text更简单:

items('应用到每一个')?['valueObject']?['Amount']?['text']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 11:58:16