如何通过ID加载时将功能应用于多个工作表

时间:2016-07-18 13:48:58

标签: google-apps-script google-sheets

每天我都会运行一个脚本来格式化自动生成的十几个新电子表格的外观。

首先,我将它们放在Google云端硬盘上的一个文件夹中,运行一个脚本,生成该文件夹中所有文件ID的列表,然后我将每个ID一次复制并粘贴到一个新脚本中并运行它。 基本上我是使用var ss = SpreadsheetApp.openById("<id goes here>");

加载工作表

由于我已经有15个左右的ID列表(这个数字每天都可以更改),我想知道是否有可以改变脚本的方式以便它可以使用通过每个ID并完成。以下是代码的示例:

function format() {
  var ss = SpreadsheetApp.openById("<id goes here>");
  var sheet = ss.getActiveSheet();
  var range = sheet.getDataRange();
  var numRows = range.getNumRows();
  for(var i=2; i<=numRows; i++){
    sheet.setRowHeight(i, 320);
    }
  sheet.deleteColumn(3);
  sheet.setColumnWidth(1, 72);
  sheet.setColumnWidth(2, 150);
  sheet.setColumnWidth(3, 300);
  sheet.setColumnWidth(4, 150);
  sheet.setColumnWidth(5, 150);
  sheet.setColumnWidth(6, 300);
  var maxColumns = sheet.getMaxColumns(); 
  var lastColumn = sheet.getLastColumn();
  if (maxColumns-lastColumn != 0){
      sheet.deleteColumns(lastColumn+1, maxColumns-lastColumn);
      }
  var maxRows = sheet.getMaxRows();
  if (maxRows-numRows != 0){
      sheet.deleteRows(numRows+1, maxRows-numRows);
    } 
};

1 个答案:

答案 0 :(得分:0)

例如:

var folder = DriveApp.getFolderById('<folder ID goes here>');
var contents = folder.getFiles();
var file;
var name;
var id;
while(contents.hasNext()) {
file = contents.next();
name = file.getName();
id = file.getId()
var ss = SpreadsheetApp.openById(id);

and continue on from here