Excel / WPS 公式版本查询 API

传入一条公式,返回它所需的最低 Excel 版本(2003 – 365),或判定为 WPS 独有

免费无鉴权GET / POST纯文本 / JSONCORS 开放

在线查询

输入公式后点击「查询版本」试试

接口说明

接口方法传参返回
/api/version GETPOST 查询串 ?f=公式,或 POST JSON {"formula":"=..."} 版本号纯文本,如 WPS、2021、2003
/api/versions GETPOST 同上 JSON:{"version":"365","functions":{...}}

GET 示例

https://excel.zhouzhouya.top/api/version?f==XLOOKUP(A1,B:B,C:C)
→ 2021   (纯文本)

https://excel.zhouzhouya.top/api/versions?f==SUM(A1)
→ {"version":"2003","functions":{"SUM":"2003"}}

POST 示例(长公式推荐)

curl -X POST https://excel.zhouzhouya.top/api/version \
  -H "Content-Type: application/json" \
  -d '{"formula":"=LET(f,LAMBDA(n,IF(n<=1,1,f(n-1)+n)),f(3))"}'
→ WPS

错误统一返回 400/413:JSON 接口为 {"error":"说明"},纯文本接口为说明文本。

在 Excel 表格中直接调用(仅 Windows)

Windows 版 Excel 2013 起提供的函数,可以在单元格里发起 HTTP 请求,与本接口配合可一步查出任意公式的版本。注意:WEBSERVICE 仅 Windows 版 Excel 支持(Mac 版 Excel、Excel 网页版、WPS 表格均不支持);ENCODEURL 在 WPS 中可用,Mac 版 Excel 与 Excel 网页版不支持。

FORMULATEXT(引用) — Excel 2013+(WPS / Mac 版 Excel 亦支持)

把某个单元格里的公式取出来,变成文本。

A2 的内容为公式 =XLOOKUP(A1,B:B,C:C)
FORMULATEXT(A2) → 文本 "=XLOOKUP(A1,B:B,C:C)"

ENCODEURL(文本) — Excel 2013+(WPS 亦支持)

对文本做 URL 编码。公式里的 & ( ) " 空格 { } 等字符直接拼进网址会被截断或破坏参数,必须先编码。

ENCODEURL("=SUM(1)") → "%3DSUM%281%29"

WEBSERVICE(网址) — 仅 Windows 版 Excel 2013+,需联网

请求一个网址,把响应内容作为文本返回。本接口的 /api/version 返回纯文本,正好可以直接显示。

=WEBSERVICE("https://excel.zhouzhouya.top/api/version?f=%3DSUM%281%29")
→ 2003

组合用法(推荐)

判断 A2 中公式的版本(A2 里已有一条公式,无需改动它):

=WEBSERVICE("https://excel.zhouzhouya.top/api/version?f="&ENCODEURL(FORMULATEXT(A2)))
→ 单元格直接显示:2021 / WPS / 2003 …

公式以文本形式放在 A1(输入时最前面加英文单引号 ',如 '=IFS(A1,1)):

=WEBSERVICE("https://excel.zhouzhouya.top/api/version?f="&ENCODEURL(A1))

需要函数明细时改用 /api/versions,返回 JSON 文本:

=WEBSERVICE("https://excel.zhouzhouya.top/api/versions?f="&ENCODEURL(FORMULATEXT(A2)))
→ {"version":"WPS","functions":{"LET":"2021","LAMBDA":"365","IF":"2003"}}
提示:WEBSERVICE 每次重算都会发起网络请求,判定完成后可把该单元格「复制 → 粘贴为值」避免反复请求。WPS 表格支持 ENCODEURL,但不支持 WEBSERVICE(Mac 版 Excel 两者均不支持),因此无法在单元格内发起网络请求调用本接口——WPS 用户可把公式文本粘贴到页面顶部「在线查询」框查询,或直接在浏览器访问 API 网址。

在前端 / 程序中调用

const formula = '=LET(F,LAMBDA(n,IF(n<=1,1,F(n-1)+n)),F(3))';

// GET
const res = await fetch('https://excel.zhouzhouya.top/api/versions?f=' + encodeURIComponent(formula));
const data = await res.json();
// data => { version: 'WPS', functions: { LET: '2021', LAMBDA: '365', IF: '2003' } }

// POST(长公式推荐)
const res2 = await fetch('https://excel.zhouzhouya.top/api/versions', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ formula: formula })
});

CORS 已全开放,任何网页均可直接调用。

版本判定规则

2003→2007→2010→2013→2016→2019→2021→365

限制