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

使用xlwings写入动态数组公式时出现@或被{}包裹的问题

解决xlwings写入动态数组公式出现@或{}的问题

直接使用formula属性替代formula_array,同时确保公式以=开头即可解决:

sheet.range('A9').formula = '=IFERROR(SORT(FILTER(\'Fwd Data\'!B:P,\'Fwd Data\'!A:A=TRUE),2,-1),"NO RESULTS FOUND WITHIN THESE THRESHOLDS")'

原因说明

在新版Office 365中,动态数组公式默认支持溢出行为,formula_array是为旧版Excel数组公式设计的API,会自动给公式添加{}包裹;而@符号是Excel的隐式交集运算符,当Excel判定公式应该返回单值却返回数组时会自动插入。使用formula属性写入符合动态数组规范的公式,Office 365会自动识别并处理溢出逻辑,无需额外标记。


原问题相关代码片段

用户原代码中存在问题的公式写入逻辑:

# 原问题代码
sheet.range(
    'A9').formula_array = '=IFERROR(SORT(FILTER(\'Fwd Data\'!B:P,\'Fwd Data\'!A:A=TRUE),2,-1),"NO RESULTS FOUND WITHIN THESE THRESHOLDS")'

期望写入的目标公式:

=IFERROR(SORT(FILTER('Fwd Data'!B:P,'Fwd Data'!A:A=TRUE),2,-1),"NO RESULTS FOUND WITHIN THESE THRESHOLDS")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 01:45:40