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

如何在sheetrock.js中使用callback选项?获取输出变量方法

How to get Sheetrock's output as a variable in the callback function?

Problem Description

我尝试将Sheetrock的查询输出作为变量,用作另一个函数的输入,但因JavaScript知识有限遇到困难,恳请帮助。我的代码如下:

var d = new Date();
var month = new Array();
month[0] = "Jan";
month[1] = "Feb";
month[2] = "Mar";
month[3] = "Apr";
month[4] = "May";
month[5] = "Jun";
month[6] = "Jul";
month[7] = "Aug";
month[8] = "Sep";
month[9] = "Oct";
month[10] = "Nov";
month[11] = "Dec";
var n = month[d.getMonth()];
var y = d.getFullYear();
$("#value").sheetrock({
  url: 'https://docs.google.com/spreadsheets/d/1XSVP75fJkq34gLHhwIsEWOC3My-6xnbVURk4U_wotD0/edit#gid=0',
  query: "select C where B = "+ y +" and A = '"+ n +"'",
  callback: draw
});
function draw(data, sheetrock,response) {
  console.log(); // how to get the output from sheetrock as a variable?
}

请问如何在draw回调函数中获取Sheetrock的输出作为变量?


Answer

嘿,别发愁!Sheetrock已经把查询结果打包在回调函数的data参数里了,你只需要正确解析这个参数就能拿到想要的变量。

Sheetrock返回的data对象中,data.rows是查询到的所有行数据组成的数组——根据你的查询条件(匹配年份和月份),应该只会返回一行结果。每一行的cells属性对应该行的单元格数组,每个单元格的value属性就是单元格里的实际内容。

你可以这样修改你的draw函数:

function draw(data, sheetrock, response) {
  // 先确认是否有查询到有效数据
  if (data.rows.length > 0) {
    // 提取C列的数值(因为你的查询语句是select C)
    var resultValue = data.rows[0].cells[0].value;
    console.log("Sheetrock返回的结果:", resultValue);
    
    // 现在你就可以把这个resultValue当作变量,传给其他需要它的函数啦
    // 比如:yourTargetFunction(resultValue);
  } else {
    console.log("没有匹配到符合条件的数据哦");
  }
}

简单拆解下这段代码的逻辑:

  • data.rows[0]:取查询结果的第一行(你的条件只会匹配到一行数据)
  • cells[0]:对应你查询的C列(因为只select了单个列,所以cells数组里只有一个元素)
  • .value:获取单元格里的具体内容

如果后续你的查询可能返回多行数据,也可以用循环遍历data.rows数组,逐个提取每行的单元格值哦。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:18:42