如何将云端硬盘中的脚本应用链接到我的Google工作表

时间:2019-11-25 20:29:46

标签: google-apps-script google-sheets

我有一个在Google云端硬盘中创建的脚本,因为我希望它是电子表格的独立脚本-主要是因为其他用户一直在使用这些脚本,并且工作表在我找到之前无法正常运行所有的问题!

其中一个脚本是这样的:

var SORT_COLUMN_INDEX = 2;
var ASCENDING = true;
var NUMBER_OF_HEADER_ROWS = 2;

var activeSheet;

function autoSort(sheet) {
  var range = sheet.getDataRange();

  if (NUMBER_OF_HEADER_ROWS > 0) {
    range = range.offset(NUMBER_OF_HEADER_ROWS, 0);
  }

  range.sort( {
    column: SORT_COLUMN_INDEX,
    ascending: ASCENDING
  } );
}

function onClickButton() {
  var sheet = SpreadsheetApp.getActiveSheet();
  autoSort(sheet);
}

我在网上找到了该文件,显然可以将应用程序脚本链接到电子表格,但这对我不起作用... var ss = SpreadsheetApp.OpenFileById(xxx__xxx)

当我运行脚本时,这只会返回以下内容: TypeError: Cannot find function OpenFileById in object.

请有人协助我将代码var ss = SpreadsheetApp.OpenFileById(xxx__xxx)放在脚本中,还是最好的脚本中,以便根据工作表ID查找电子表格?

p.s。如果有任何区别,我将需要运行函数onClickButton ...

1 个答案:

答案 0 :(得分:0)

从独立脚本中排序电子表格

var ssid="Spreadsheet Id";

function sortingSS() {
  var ss=SpreadsheetApp.openById(ssid);
  var sh=ss.getSheetByName('Sheet3');
  var rg=sh.getRange(2,1,sh.getLastRow()-1,sh.getLastColumn());
  rg.sort({column:1,ascending:true});
}

排序前的表格

enter image description here

排序后页

enter image description here

将其添加到菜单

function onOpen() {
  SpreadsheetApp.getUi().createMenu("Project Menu")
  .addItem("Sorting Spreadsheet", "sortingSS")
  .addToUi();
}

Creating a button of your own