一步步教你把加密货币价格免费接入 Google 表格

·

想在同一张 Google 表格里追踪比特币、以太坊等代币的实时行情,却不想手动复制粘贴?跟着本篇教程,用 12 分钟就能通过 CoinMarketCap API 自动刷新加密货币价格,还能把菜单按钮加到表格顶部,随点随更新,完全免费。


为什么要自动更新

只要你是以下三类人之一,这招就能让爱:

  1. 同时持有 5 支以上代币,一两个平台查花眼;
  2. 需要做周报或月度绩效,要给投资人展示收益表;
  3. 刚入门 DeFi/NFT,想练习链上投资数据整理

把价格接入 Google 表格后,设置好 1 分钟、5 分钟级轮询,即可避免「官网宕机」或「钱包 App 卡死」带来的延迟。


动手前的准备

需要账号费用使用人数上限
Google 账号免费无限制
CoinMarketCap 免费计划免费上限 3 万调用/月

⚠️ 若你的表格由多人协作,建议使用 可编辑权限 的专属谷歌账号,避免脚本被别人误删。


第1步:获取 CoinMarketCap API 密钥

  1. 打开 CoinMarketCap 注册页面,
  2. 选择 “Free Plan”,填写邮箱并验证;
  3. 进入「Account → API Keys」,点击 【Generate Key】
  4. 完成后复制密钥:长字符串 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,记好别泄露。
✅ 免费额度每天可请求 3 万次,足够个人使用 100 年有余。

第2步:建立 Google 表格与脚本

  1. 新建 Google 表格,命名 CoinMarketCap,避免与其他 Sheet 重名;
  2. 右上角 Extensions → Apps Script
  3. 删除自动生成的 function myFunction() 内容,替换成下方完整代码。
function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Crypto 价格')
    .addItem('🔁 刷新实时价格', 'fetchCoinPrices')
    .addToUi();
}

function fetchCoinPrices() {
  const API_KEY     = '把你的 API Key 粘在这';       // <- 修改
  const COIN_LIST   = ['BTC','ETH','BNB','ADA','SOL',   // 自定义,保持大写
                       'AVAX','MATIC','DOT','LINK'];

  const URL = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest?symbol=' + COIN_LIST.join();

  const options = {
    method      : 'GET',
    headers     : {
      'X-CMC_PRO_API_KEY': API_KEY,
      'Accept'          : 'application/json'
    }
  };

  try {
    const res   = UrlFetchApp.fetch(URL, options);
    const json  = JSON.parse(res.getContentText()).data;

    const sheet = SpreadsheetApp.getActiveSpreadsheet()
                               .getSheets()
                               .filter(s => s.getName() === "CoinMarketCap")[0];

    sheet.getRange(1, 1, sheet.getLastRow(), 3).clear();   // 清空旧数据
    sheet.getRange(1, 1).setValue('代币');
    sheet.getRange(1, 2).setValue('美元报价');
    sheet.getRange(1, 3).setValue('更新时间');

    let row = 2;
    for (const symbol of COIN_LIST) {
      if (json[symbol]) {
        sheet.getRange(row, 1).setValue(symbol);
        sheet.getRange(row, 2).setValue(json[symbol].quote.USD.price);
        sheet.getRange(row, 3).setValue(new Date());
        row++;
      }
    }
    SpreadsheetApp.getActiveSpreadsheet().toast(`已刷新 ${row-2} 支代币报价`);
  } catch (e) {
    SpreadsheetApp.getUi().alert('请求失败:\n' + e.toString());
  }
}
  1. 右上角 保存(Ctrl+S) → 命名为 cryptoSheet,系统会弹出权限授权,点击「允许」即可。
  2. 回到表格刷新页面,顶部会多出一个 「Crypto 价格」 菜单,内含 「刷新实时价格」 按钮。

第3步:自动化与安全优化

1. 让脚本定期执行

进入 Apps Script → 左边时钟图标(Triggers)→「添加触发器」

👉 点此测试 15 分钟级轮询,彻底放开双手监控市场波动。

2. 误差控制小技巧


常见问题与解答 Q&A

Q1:免费额度够用吗?我持有 50+ 代币。
A:一次请求最多支持 120 种代币的交易对,若提币对单价敏感请拆分成两组并设置不同脚本。

Q2:脚本要翻墙才能用吗?网络被封怎么办?
A:Google Apps Script 服务器位于国外,国内网络无墙。若谷歌被国内 DNS 污染,可用校园网或 4G 试运行。

Q3:能一次性拉「历史全量日线」吗?
A:免费的 API 只返回「最新价」,如需历史 K 线,CDN 获取 CSV 然后导入 Google Sheet 即可。

Q4:如何把价格自动转成「人民币」?
A:在 fetchCoinPrices 里新增一条 json[symbol].quote.CNY.price,或将美元栏乘以 =GOOGLEFINANCE("CURRENCY:USDUSD")/GOOGLEFINANCE("CURRENCY:USDCNY")

Q5:多人共享表格会不会泄露 API 密钥?
A:脚本与数据分离,别人只能看到价格结果;若担忧,可把脚本放在专用账户,再通过 IMPORTRANGE 引用价格列。


一条龙案例:自动计算总资产

把手里各钱包的代币 余额 填在 D 列:

最后在 「资产汇总」 Sheet 加 =SUM('CoinMarketCap'!E:E),总盘子净值就此一目了然。

👇 利用同样思路,还可用脚本一键闪兑和税务计算,省时 80%。


结语

无需购买付费插件,也无需安装任何扩展,通过 Google Apps Script + CoinMarketCap 免费 API,你就能把加密币价格稳稳锁死在表格里。记得把常用币种加入脚本,15 分钟或点一下即可完成刷新,从此日常记账和投资复盘一气呵成。