1

我是 SO 新手(虽然不是 SE 媒体),所以虽然我已经搜索过答案(使用网站的搜索功能和谷歌),但有可能以前有人问过并回答过;如果是这样,请提前感谢您将其标记为重复(前提是我可以在原件中找到一些帮助,自然)。

我正在尝试编写一个脚本供我个人使用,用于聚合和过滤 RSS 提要。我已经处理了 RSS 角(在很大程度上要感谢这个 Programmer's Library entry),但我卡住的地方是我想通过使其查找包含在我的电子表格文件中的短语来使过滤器模块化谷歌云端硬盘。这样,如果我需要修改/添加过滤条件,我可以简单地编辑我的驱动器上的文件,而不是进入我的脚本代码。

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

最后,我应该提一下,我在拼贴中学习了一些 Java,但作为一名数学专业的我,我从来没有很熟练地完成它;我很乐意使用类似事物的示例并进行调整以做我需要的事情,但可能仅此而已(尽管我非常愿意学习,如果以非专业程序员可以的方式解释事情理解)。我会很感激你能给我的任何帮助(让我找到正确的地方来得到我的答案会很棒),但请记住,如果事情变得过于技术化,我的脑袋可能会爆炸。

非常感谢。

4

1 回答 1

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 开始(制作副本以运行代码)

于 2013-10-08T22:32:57.713 回答