在我的脚本中使用Google doc(电子表格)

时间:2013-10-08 21:00:32

标签: google-apps-script google-sheets google-drive-api

我是SO的新手(尽管不是SE的媒介),所以虽然我已经搜索了一个答案(使用网站的搜索功能和Google),但之前有可能会被问到并回答过。如果是这样,请提前感谢标记为重复(前提是我可以在原文中找到一些帮助,自然而然)。

我正在尝试编写一个供个人使用的脚本,用于聚合和过滤RSS源。我已经处理了RSS角(很大程度上要归功于this Programmer's Library entry),但我遇到的问题是,我希望通过查找电子表格文件中包含的短语来使滤波器模块化我的Google云端硬盘这样,如果我需要修改/添加过滤术语,我只需编辑驱动器上的文件,而不是进入我的脚本代码。

所以,我一直在浏览类File,Spreadsheet,SpreadsheetApp,ScriptDb以及这个Developer's article的API,但我无法理解它(我感觉我可能不是在正确的地方寻找)。在最基本的术语中,我需要做的是从(到)驱动器上的电子表格文件加载(并且可能保存)一个数组(对于我所关注的所有可能是Object [] [])。然后我可以轻松地过滤所述数组的条目。我有兴趣做的另一件事是保留一些关于每个术语被用作有效过滤器的统计数据,这是将修改后的数组保存回我的驱动器的地方会派上用场。

总之,我应该提一下我在拼贴画中使用了一些Java,但作为一个数学专业,我从来没有完成过它;我很喜欢使用类似的东西的例子并做出调整以做我需要的事情,但可能没有那么多(虽然我非常愿意学习,如果事情的解释方式非专业程序员可以了解)。我会感谢你能给我的任何帮助(指我正确的地方可以得到我的答案超级),但请记住,如果事情变得过于技术化,我的头部可能会爆炸。

非常感谢。

1 个答案:

答案 0 :(得分:1)

以下是您的标准示例:

function getArrayFromSheet(sheetName) {
  var ss = SpreadsheetApp.openById('0AnqSFd3iikE3dF9hb3RUeHBqNUt2NGdkRlUycVZQN0E');// edit this id to suit your spreadsheet
  var sh = ss.getSheetByName(sheetName);
  var lastRow = sh.getLastRow();
  var lastCol = sh.getLastColumn();
  var data = sh.getRange(2,1,lastRow,lastCol).getValues();// starting from row nr 2 to skip headers if present (otherwhise start from 1)
  // data is an array of arrays [[row1],[row2],[row3],[...]] 0 indexed, each row inside the array is an array of the cell values
  return data
}

// usage :

function testFunction(){
  var firstRowOfData = getArrayFromSheet('filters')[0];
  Logger.log(firstRowOfData)
}

这是一个testSpreadsheet to start with(制作代码运行副本)