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

ASP.NET MVC用OfficeOpenXml设Excel公式时@符号致#VALUE!问题

解决OfficeOpenXml设置公式时自动添加@符号的问题

问题原因

你遇到的@符号是Excel 365/2021及以上版本的溢出数组公式标识,当公式中直接对单元格范围执行数组运算(比如FLOOR(I2:I12/2,0.01))时,Excel会默认将其识别为溢出公式,自动添加@将范围转为单个单元格引用,导致求和范围失效,出现#VALUE!错误。

解决方案

方案1:使用传统数组公式

将设置公式的Formula属性替换为FormulaArray,OfficeOpenXml会将其标记为传统数组公式(对应手动输入时按Ctrl+Shift+Enter的效果),避免自动添加@:

cell.FormulaArray = "=SUM(FLOOR(I2:I12/2,0.01))";

打开Excel后,公式会以数组公式形式存在(显示为带大括号{=SUM(FLOOR(I2:I12/2,0.01))}),可正常计算,且兼容旧版Excel。

方案2:适配新版Excel的溢出安全写法

如果目标环境是Excel 365/2021及以上版本,可改用BYROW函数遍历范围元素,避免触发溢出公式自动添加@:

cell.Formula = "=SUM(BYROW(I2:I12,LAMBDA(x,FLOOR(x/2,0.01))))";

这种写法不需要数组公式,直接通过Lambda函数逐个处理单元格后求和,Excel不会添加@符号,计算逻辑和原公式一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 23:15:58