循环浏览Google电子表格中的单元格

时间:2015-04-05 10:37:57

标签: javascript loops google-apps-script google-sheets

我一直忙于尝试在Google电子表格中使用内置javascript,但是,没有使用javascript或Google电子表格,我遇到了一些困难。

我的脚本应该读取单元格中的数字(1-3),并从该数字解析图像到下面的单元格(我已经使用了setFormula命令)。

到目前为止,它正在为1个单元格工作(B6正如我现在所选择的那样),但是我想在每个其他单元格中循环一个包含数字的列(这样在脚本运行之后) ,它的数字 - 图片 - 数字 - 图片等) - 我只是无法弄清楚如何。

我现在使用的代码:

    function numbtoimage() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var url = 'IMAGE("https://dl.dropboxusercontent.com/s/bpqy8o796casqjl/belt.JPG?dl=0", 2)';
var url2 = 'IMAGE("https://dl.dropboxusercontent.com/s/4q8sakhkpot0h65/belt2.JPG?dl=0",2)';
var url3 = 'IMAGE("https://dl.dropboxusercontent.com/s/kvsf4z6z45rcg53/belt3.JPG?dl=0",2)';
var cell = sheet.getRange("B6")
var data = cell.getValue()
if(data==1) {cell.offset(1, 0, 1).setFormula(url);}
else if(data==2) {cell.offset(1, 0, 1).setFormula(url2);}
else if(data==3) {cell.offset(1, 0, 1).setFormula(url3);}
}

我已查看This similar problem,但无法使其适用于我的案例。

任何帮助都非常值得赞赏!

  • 尼克拉斯

1 个答案:

答案 0 :(得分:0)

您需要某种循环来遍历数据。我会建议一个FOR循环。 您的脚本当前是为了获取一个单元格值而不是所有值而编写的。 因此,可能需要一次性获取所有值,然后检查其中的内容。

同样来自你的问题,目前尚不清楚数字的位置。 仅在B列?

这是一个快速示例(未经测试),通过列B查找数字,它应该根据该数字在下面的单元格中插入链接。此代码基于您的原始示例,未经测试,但希望它有所帮助。

function numbtoimage() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var url = 'IMAGE("https://dl.dropboxusercontent.com/s/bpqy8o796casqjl/belt.JPG?dl=0", 2)';
  var url2 = 'IMAGE("https://dl.dropboxusercontent.com/s/4q8sakhkpot0h65/belt2.JPG?dl=0",2)';
  var url3 = 'IMAGE("https://dl.dropboxusercontent.com/s/kvsf4z6z45rcg53/belt3.JPG?dl=0",2)';
  var values = sheet.getValues();

  for(i=0; i < values.lenth ; i++){

    if(values[i][1]==1) {sheet.getRange(i+2, 2).setFormula(url);}
    else if(values[i][1]==2) {sheet.getRange(i+2, 2).setFormula(url2);}
    else if(values[i][1]==3) {sheet.getRange(i+2, 2).setFormula(url3);}
  }
}