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

如何在Google Sheets的Apps Script中获取正确表头区域设置单元格值?

解决Zonda API数据写入Google Sheets的问题

步骤1:解析API响应的JSON数据

首先需要把API返回的字符串格式JSON转换成JavaScript对象,才能直接读取里面的字段。修改代码如下:

function fetchZondaTicker() {
  const url = 'https://api.zonda.exchange/rest/trading/ticker/BTC-PLN';
  const response = UrlFetchApp.fetch(url);
  // 解析JSON响应为可操作的对象
  const apiData = JSON.parse(response.getContentText());
  
  // 校验API请求是否成功
  if (apiData.status !== "Ok") {
    Logger.log("API请求失败,请检查网络或接口地址");
    return;
  }
  
  // 提取核心行情数据
  const ticker = apiData.ticker;
}

步骤2:整理表头与对应数据

根据API返回的字段,定义你需要的表头和对应数据值。示例选取常用行情字段:

// 定义表头文本和对应数据
const headers = ["交易对", "最高买价", "最低卖价", "当前汇率", "昨日汇率", "更新时间", "最小BTC委托量"];
const dataValues = [
  ticker.market.code,
  parseFloat(ticker.highestBid), // 转换为数值类型方便后续计算
  parseFloat(ticker.lowestAsk),
  parseFloat(ticker.rate),
  parseFloat(ticker.previousRate),
  new Date(parseInt(ticker.time)), // 把时间戳转换为可读日期格式
  parseFloat(ticker.market.first.minOffer)
];

步骤3:写入Google Sheets单元格

将表头和数据写入指定区域。示例把表头放在第2行,数据追加到表格末尾:

const sheet = SpreadsheetApp.getActiveSheet();
// 可选:写入表头(仅第一次运行需要,之后可注释)
sheet.getRange(2, 1, 1, headers.length).setValues([headers]);

// 追加新数据到表格最后一行的下方
const lastRow = sheet.getLastRow() + 1;
sheet.getRange(lastRow, 1, 1, dataValues.length).setValues([dataValues]);

完整代码

整合后的完整可运行代码:

function fetchZondaTicker() {
  const url = 'https://api.zonda.exchange/rest/trading/ticker/BTC-PLN';
  const response = UrlFetchApp.fetch(url);
  const apiData = JSON.parse(response.getContentText());
  
  if (apiData.status !== "Ok") {
    Logger.log("API请求失败");
    return;
  }
  
  const ticker = apiData.ticker;
  const headers = ["交易对", "最高买价", "最低卖价", "当前汇率", "昨日汇率", "更新时间", "最小BTC委托量"];
  const dataValues = [
    ticker.market.code,
    parseFloat(ticker.highestBid),
    parseFloat(ticker.lowestAsk),
    parseFloat(ticker.rate),
    parseFloat(ticker.previousRate),
    new Date(parseInt(ticker.time)),
    parseFloat(ticker.market.first.minOffer)
  ];
  
  const sheet = SpreadsheetApp.getActiveSheet();
  // 可选:写入表头(仅首次运行需要)
  sheet.getRange(2, 1, 1, headers.length).setValues([headers]);
  
  // 追加数据到表格末尾
  const lastRow = sheet.getLastRow() + 1;
  sheet.getRange(lastRow, 1, 1, dataValues.length).setValues([dataValues]);
}

自定义调整说明

  • 修改表头位置:调整getRange中的行号(比如sheet.getRange(1,1,...)将表头放在第1行)。
  • 增减字段:直接在headers和dataValues数组中添加或删除对应条目即可。
  • 格式控制:用parseFloat确保数值字段不是文本格式,new Date将时间戳转为可读日期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:05:24