模板中已注册的自定义公式函数。公式写法与 Excel 类似,均以=开头,例如=QRCODE("https://example.com")。
适用范围
通用函数在 Excel 编辑、预览和模块子表编辑器中可用,主要包括图表、二维码、公开查询链接等函数。
模块化子表函数 RSSCOL、RSSROW、RSSHOST 主要在模块子表编辑器、分页和导出流程中使用。
打印占位函数 RSPAGE 等主要用于打印、导出时替换页码和标题。
图表函数和二维码函数返回的是图片型结果。单元格需要有足够的行高、列宽,打印或导出时才容易完整显示。
通用约定
单元格区域参数可以传单行、单列或多行区域,例如A1:J1、A1:A10、A1:J3。
height、width为图片高度和宽度,单位为像素。不传或传入非正数时通常使用默认值400 x 600,二维码默认200 x 200。
图表函数的数据区域中应尽量只包含数字。空值或无法转为数字的内容会被忽略或导致#VALUE!。
多行数据通常表示多条曲线,要求 X/Y 两个区域的行数一致,且每行数据点数量一致。
函数总览
JSECHARTS | ||
SFECHARTS | ||
YSXECHARTS | ||
CBRECHARTS | ||
ZJECHARTS | ||
ZJKJECHASRTS | ||
QRCODE | ||
GETUUIDURLGETURL | uuid 的报告公开查询地址 | |
RSSCOL | ||
RSSROW | ||
RSSHOST | ||
RSPAGE | ||
RSTOTALPAGE | ||
RSSHEETPAGE | ||
RSTOTALSHEETPAGE | ||
RSWORKBOOK | ||
RSWORKSHEET |
JSECHARTS 击实曲线
生成土的击实曲线图,显示含水率与干密度的关系。函数内部进行 2 到 5 次多项式拟合,默认使用 4 次拟合。
=JSECHARTS(moistureContent, dryDensity, polynomialDegree, height, width, type)参数:
moistureContent | ||
dryDensity | ||
polynomialDegree | 2、3、4、5,默认 4 | |
height | 400 | |
width | 600 | |
type | 0 或不传返回图表,1 返回最佳含水率,2 返回最大干密度 |
示例:
=JSECHARTS(A1:A6, B1:B6)=JSECHARTS(A1:A6, B1:B6, 4, 500, 800)=JSECHARTS(A1:A6, B1:B6, 4, 500, 800, 1)=JSECHARTS(A1:A6, B1:B6, 4, 500, 800, 2)

注意:
有效数据至少需要 5 组,最多 6 组。
type=1
返回最佳含水率,保留 2 位小数。
type=2
返回最大干密度,保留 5 位小数。
兼容旧写法:=JSECHARTS(x, y, height, width, type)。如果第三个参数不是 2 到 5 的整数,会按旧写法解释。
SFECHARTS 筛分曲线
生成筛分曲线图,显示通过率与筛孔尺寸的关系,支持多条曲线对比。
=SFECHARTS(val, labels, height, width)参数:
val | %。多行表示多条曲线 | |
labels | ||
height | 400 | |
width | 600 |
示例:
=SFECHARTS(H1:Q1, H2:Q2)=SFECHARTS(H1:Q3, H4:Q4, 500, 800)
注意:
val
每一行的数据点数量必须与 labels 的数量一致。
多行 val 会生成多条筛分曲线。
YSXECHARTS 液塑限图表
生成土的液塑限图表,显示锥入深度与含水率的关系。
=YSXECHARTS(pointA, pointB, pointC, height, width)参数:
pointA | \\\[含水率, 锥入深度],如 A1:B1 | |
pointB | ||
pointC | ||
height | 400 | |
width | 600 |
示例:
=YSXECHARTS(A1:B1, A2:B2, A3:B3)=YSXECHARTS(A1:B1, A2:B2, A3:B3, 500, 800)

注意:
每个点应提供两个数值:含水率和锥入深度。
点数据格式错误时返回#VALUE!。
CBRECHARTS CBR 试验曲线
生成 CBR 试验曲线图,用于显示承载比与贯入深度的关系。
=CBRECHARTS(xData, yData, height, width)参数:
xData | ||
yData | xData 对应 | |
height | 400 | |
width | 600 |
示例:
=CBRECHARTS(A1:J1, A2:J2)=CBRECHARTS(A1:J3, A4:J6, 500, 800)
注意:
xData
与 yData 行数必须一致。
每一行的 X/Y 数据点数量必须一致。
ZJECHARTS 直剪试验曲线
生成土的直接剪切试验曲线,显示剪切位移与剪应力的关系。也可以返回每条曲线的最大剪应力。
=ZJECHARTS(xData, yData, height, width, mode)参数:
xData | ||
yData | xData 对应 | |
height | 400 | |
width | 600 | |
mode | 0 或不传返回图表,1 返回各曲线最大剪应力 |
示例:
=ZJECHARTS(A1:J1, A2:J2)=ZJECHARTS(A1:J4, A5:J8, 500, 800)=ZJECHARTS(A1:J4, A5:J8, 500, 800, 1)
注意:
mode=1
返回纵向数组,每一行对应一条曲线的最大剪应力,数值会四舍五入为整数。
xData
与 yData 组数必须一致,每组数据长度也必须一致。
ZJKJECHASRTS 抗剪强度曲线
生成抗剪强度与垂直压力关系图,并根据线性拟合结果返回内摩擦角和黏聚力截距。函数名当前源码中拼写为 ZJKJECHASRTS,模板里也必须按这个名称填写。
=ZJKJECHASRTS(pressureData, strengthData, height, width, mode)参数:
pressureData | ||
strengthData | ||
height | 400 | |
width | 600 | |
mode | 0 或不传返回图表,1 返回 \\\[φ, c],2 只返回 φ,3 只返回 c |
示例:
=ZJKJECHASRTS(A1:D1, A2:D2)=ZJKJECHASRTS(A1:D1, A2:D2, 500, 800, 1)=ZJKJECHASRTS(A1:D1, A2:D2, 500, 800, 2)=ZJKJECHASRTS(A1:D1, A2:D2, 500, 800, 3)
返回值:
mode=0
或不传:返回图片图表。
mode=1
:返回一行两列数组,第一列为内摩擦角 φ,第二列为截距 c。
mode=2
:返回内摩擦角 φ,单位为度。
mode=3
:返回截距 c。
注意:
至少需要 2 组数据。
pressureData
与 strengthData 数量必须一致。
如果无法线性拟合,会返回#VALUE!。
QRCODE 二维码
生成二维码图片。
=QRCODE(text, width, height, margin, color)参数:
text | ||
width | 200 | |
height | 200 | |
margin | 4 | |
color | #000000 |
示例:
=QRCODE(”https://example.com”)=QRCODE(”https://example.com”, 200, 200)=QRCODE(A1, 160, 160, 2, ”#1f2937”)
注意:
text
不能为空。
如果传入区域数组,函数会按区域逐格生成二维码结果。
二维码实际绘制为正方形,内部使用 width 和 height 中较小的尺寸生成 SVG。
GETUUIDURL / GETURL 公开查询地址
生成报告公开查询地址,地址格式为:
{host}/#/queryreport?uuid={uuid}=GETUUIDURL(host)=GETURL(host)
参数:
host | window.location.origin |
示例:
=GETUUIDURL()=GETUUIDURL(”https://example.com”)=GETURL(”https://example.com”)
注意:
GETURL
是 GETUUIDURL 的别名。
uuid
来源于当前工作表 customMetadata.dataSource.uuid 或 customMetadata.dataSource.UUID。
如果当前环境没有 univerAPI、没有活动工作簿、没有活动工作表或没有元数据,会返回#VALUE!。
RSSCOL 模块子表列数据
获取模块子表某一列的纵向数据数组。函数会自动跳过冻结标题行,即从冻结行之后开始取数。
=RSSCOL(columnRef, embedId)参数:
columnRef | A、C、3、C1 等。数字按 1 起始列号解释 | |
embedId |
示例:
=RSSCOL(”C”)=SUM(RSSCOL(”C”))=AVERAGE(RSSCOL(3))=RSSCOL(”C”, ”module-001”)
注意:
仅能读取当前绑定的模块子表;显式传入的 embedId 与当前绑定不一致时返回#N/A。
返回结果为单列数组,可配合 SUM、AVERAGE、图表函数等使用。
空单元格返回空值。
RSSROW 模块子表行数据
获取模块子表某一行的横向数据数组。函数会自动跳过冻结标题列,即从冻结列之后开始取数。
=RSSROW(rowRef, embedId)参数:
rowRef | 1、2、A2 等。数字按 1 起始行号解释 | |
embedId |
示例:
=RSSROW(2)=MAX(RSSROW(”A2”))=RSSROW(2, ”module-001”)
注意:
返回结果为单行数组。
行号按表格中的实际行号解释,不会因为跳过冻结标题列而改变行号。
RSSHOST 读取主表单元格
在模块子表编辑器中读取主表工作簿的单元格值。常用于子表公式引用主表基础信息。
=RSSHOST(cellRef, sheetRef)参数:
cellRef | B2、Sheet1!B2 | |
sheetRef |
示例:
=RSSHOST(”B2”)=RSSHOST(”Sheet1!B2”)=RSSHOST(”B2”, ”Sheet1”)
注意:
地址必须是 A1 样式单元格地址。
找不到主表、工作表或绑定上下文时返回#N/A。
地址格式错误时返回#VALUE!。
打印占位函数
以下函数用于打印、导出阶段。编辑时会先显示内部占位文本,打印渲染或导出时替换为真实值。
RSPAGE() | ||
RSTOTALPAGE() | ||
RSSHEETPAGE() | ||
RSTOTALSHEETPAGE() | ||
RSWORKBOOK() | ||
RSWORKSHEET() |
示例:
=”第 ” \\\& RSPAGE() \\\& ” 页 / 共 ” \\\& RSTOTALPAGE() \\\& ” 页”=RSWORKBOOK()=RSWORKSHEET()
注意:
这些函数没有参数。
主要在打印插件渲染阶段生效,普通编辑视图中看到占位符属于正常现象。
常见问题
图表没有显示怎么办?
检查以下几项:
公式是否以 = 开头,函数名是否拼写正确。
输入区域是否包含足够数量的数字。
单元格尺寸是否过小,建议增加行高和列宽。
X/Y 数据区域的行数和每行数据点数量是否一致。
为什么返回 #VALUE!?
常见原因:
必填参数为空。
数据区域格式不符合函数要求。
X/Y 数据数量不一致。
当前环境缺少函数依赖的上下文,例如 GETUUIDURL 缺少工作表元数据。
图表函数如何只取计算结果?
部分图表函数支持 mode 或 type:
JSECHARTS(..., type=1)
返回最佳含水率。
JSECHARTS(..., type=2)
返回最大干密度。
ZJECHARTS(..., mode=1)
返回各曲线最大剪应力。
ZJKJECHASRTS(..., mode=1)
返回 \\\[φ, c]。
ZJKJECHASRTS(..., mode=2)
返回 φ。
ZJKJECHASRTS(..., mode=3)
返回 c。
夜雨聆风