遍历 Google 电子表格中的单元格
Looping through cells in Google Spreadsheet
我一直忙于尝试在 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,但无法使其适用于我的情况。
非常感谢任何帮助!
- 尼克拉斯
您需要某种循环来遍历数据。我建议使用 FOR 循环。
当前编写的脚本是为了获取一个单元格值,而不是所有值。
因此,一次性获取所有值,然后检查其中的内容可能是个好主意。
同样从你的问题来看,不清楚在哪里可以找到这些数字。
仅在 B 列?
这是一个快速示例(未经测试),它通过 B 列查找数字,它应该根据该数字在下面的单元格中插入 link。此代码基于您的原始示例,未经测试,但希望对您有所帮助。
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);}
}
}
我一直忙于尝试在 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,但无法使其适用于我的情况。
非常感谢任何帮助!
- 尼克拉斯
您需要某种循环来遍历数据。我建议使用 FOR 循环。 当前编写的脚本是为了获取一个单元格值,而不是所有值。 因此,一次性获取所有值,然后检查其中的内容可能是个好主意。
同样从你的问题来看,不清楚在哪里可以找到这些数字。 仅在 B 列?
这是一个快速示例(未经测试),它通过 B 列查找数字,它应该根据该数字在下面的单元格中插入 link。此代码基于您的原始示例,未经测试,但希望对您有所帮助。
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);}
}
}