=LET(j,WEBSERVICE("https://api.goldprice.dev/v1/spot/XAU-USD-SPOT"),s,SEARCH("""price"":""",j)+9,VALUE(MID(j,s,SEARCH("""",j,s)-s))) 可在 Windows 版 Excel 365 中返回以 XAU/USD 计价的每金衡盎司价格。Mac 和网页版不支持 WEBSERVICE。无需密钥。工作簿每次重新计算都会消耗每月 5,000 次的匿名调用额度。免费价格延迟 15 分钟。如需定时刷新,请下载配套工作簿,在 GoldpriceSettings 中填入 API 密钥和品种代码,再在 Windows 中粘贴附带的 Power Query M 代码。Mac 可刷新在 Windows 中创建且受支持的连接。
下载 Excel 配套工作簿
**下载 goldprice.dev Excel 模板**。其中包含 Setup 表、可复制的完整查询代码、额度计算器和预期输出示例。模板的 API 密钥为空,也未建立实时连接。
前往 goldprice.dev/onboarding 创建免费密钥。免费套餐无需信用卡。
在 Setup 中填入密钥和品种代码
打开工作簿,在 Setup!B5 中填入密钥。仅当需要查询 XAU-USD-SPOT 以外的品种时,才需修改 Setup!B6。这些单元格组成查询读取的 GoldpriceSettings 表。
工作簿中的密钥始终可见。共享文件前请删除密钥,或使用组织认可的密钥管理方式。
在 Windows 版 Excel 中创建查询
在 Windows 版 Excel 中,选择数据 → 获取数据 → 从其他源 → 空白查询,打开高级编辑器,将其内容替换为下方查询。工作簿中也提供相同代码,还可下载 Power Query 文件。将查询重命名为 GoldPrice。
let Settings = Excel.CurrentWorkbook(){[Name="GoldpriceSettings"]}[Content], ApiKey = Text.Trim(Text.From(Table.SelectRows(Settings, each [Setting] = "ApiKey"){0}[Value])), Symbol = Text.Upper(Text.Trim(Text.From(Table.SelectRows(Settings, each [Setting] = "Symbol"){0}[Value]))), CheckedKey = if ApiKey = "" then error "Enter your goldprice.dev API key in Setup!B5" else ApiKey, Raw = Web.Contents( "https://api.goldprice.dev", [ RelativePath = "v1/spot/" & Symbol, Headers = [#"X-API-Key" = CheckedKey] ] ), Source = Json.Document(Raw), Result = #table( {"field", "value"}, { {"symbol", Source[symbol] & "-" & Source[quote_currency]}, {"price", Number.FromText(Source[price], "en-US")}, {"bid", if Record.HasFields(Source, "bid") and Source[bid] <> null then Number.FromText(Source[bid], "en-US") else null}, {"ask", if Record.HasFields(Source, "ask") and Source[ask] <> null then Number.FromText(Source[ask], "en-US") else null}, {"computed_at", Source[computed_at]}, {"is_stale", Source[is_stale]} } )in Result加载并刷新结果
点击完成 → 关闭并上载。如果 Excel 询问如何连接 https://api.goldprice.dev,请选择匿名;查询会通过请求头发送密钥。点击数据 → 全部刷新即可刷新。
Mac 版 Excel 可刷新在 Windows 中创建且受支持的 Power Query 连接,但不提供创建此连接所需的完整 Power Query 编辑器。下载文件是配套模板,尚未建立连接。
切换币种或金属
修改 Setup!B6 后刷新。品种代码采用 METAL-CURRENCY-SPOT 格式。查询会自动将其转为大写,并去除首尾空格。
XAU-USD-SPOTXAU-INR-SPOTXAU-EUR-SPOTXAG-USD-SPOT预期输出
{ "symbol": "XAU", "quote_currency": "USD", "unit": "troy_ounce", "contract_type": "spot", "price": "4012.75", "is_stale": false, "computed_at": "2026-08-18T08:00:00Z"}表格显示 symbol、price、computed_at 和 is_stale。买价和卖价仅限付费套餐,可能为 null。请将数值单元格设为货币格式。
常见错误
| 代码 | 现象 | 解决方法 |
|---|---|---|
| 401 | Power Query 返回 DataSource.Error: 401 Unauthorized | Setup!B5 中的密钥为空或无效。请从控制台复制新密钥。如果 Excel 缓存了错误的连接凭据,请清除 api.goldprice.dev 的权限,再次选择匿名。 |
| 429 | 偶尔出现 DataSource.Error: 429 Too Many Requests | Power Query 会自动重试收到 429 响应的请求;如果 API 提供 Retry-After,则按其指定时间重试。如果请求仍失败,请降低刷新频率。Setup 工作表可估算每月调用次数,请合计所有查询和工作簿的用量。若总量超出套餐额度,请查看套餐价格。 |
| N/A | Mac 版 Excel 没有完整的 Power Query 编辑器 | 这是平台限制,并非 API 错误。先在 Windows 版 Excel 中创建此自定义 M 连接,再在受支持的 Mac 版本中打开并刷新已连接的工作簿。 |
进阶用法
- 创建价格提醒列:
=IF([@price] > 4800, "ALERT", "OK") - 用独立查询跟踪黄金和白银,再汇总到同一个仪表板
- 从
/v1/bars获取近期日线数据,用于绘图或回测 - 将刷新后的价格接入估值模型,无需手动粘贴数值