0

我正在使用 Google 应用程序脚本,我想遍历将每周更新的电子表格。(这就是为什么我不想设置一个我希望能够遍历整个工作表的范围。)

这可能吗?如果是,你能举例说明如何做到这一点吗?

如果这不是一个好主意,为什么不呢?

谢谢!

示例代码

function doGet(e){   


var ss = SpreadsheetApp.openById('key in here');
var sheet = ss.getSheetByName("Form Responses");
var range = sheet.getRange(1,1);
var dataRange =  range.getValue().toString();

 app.add(app.createHTML("There are " + dataRange + " posts today"))
 return app;

像这样的东西,但我希望能够看到整个工作表而不仅仅是范围

4

2 回答 2

0

Henrique Abreu 和 Srik 为您提供了正确的答案 - 工作表上的 getDataRange 应该可以满足您的目的。

function doGet(e){   
 var sheet = SpreadsheetApp.openById('spreadsheetId').getSheetByName('sheetName');
 var data =  sheet.getDataRange().getValues();;
 ...
}

数据现在是二维数组,您可以遍历它,获取包含内容的最后一列/行等。请在此处阅读类参考:https ://developers.google.com/apps-script/reference/spreadsheet/sheet

于 2013-09-25T09:38:29.120 回答
0

您不能自行迭代工作表,但始终迭代范围的值。

但是,您不必使用固定范围,而是可以在每次脚本执行时计算范围。

为此,您可以使用 getlastcolumn() 和 getLastRow()。这两种方法返回包含内容的最后一列或最后一行。

一种商品方法是 getDataRange() ,它直接为您提供包含数据的范围。

此范围的每个脚本执行都将扩展到您的所有单元格和包含内容的列。

查看Google API 文档中的示例:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

// This represents ALL the data
var range = sheet.getDataRange();
var values = range.getValues();

// This logs the spreadsheet in CSV format with a trailing comma
for (var i = 0; i < values.length; i++) {
   var row = "";
   for (var j = 0; j < values[i].length; j++) {
     if (values[i][j]) {
       row = row + values[i][j];
     }
     row = row + ",";
   }
   Logger.log(row);
}

希望有帮助。

于 2016-11-03T09:39:21.107 回答