从多个谷歌工作簿中删除同一工作表(选项卡)



请帮忙!我不懂脚本,但我设法拼凑了一些脚本,帮助我所在的学区为我所在学区小学的每个学生创建个性化的谷歌表单工作簿。我们有文件夹,每个年级大约有150本谷歌工作表工作簿。每个文件夹中的所有150个工作簿都有相同的选项卡(工作表(。我希望能够从其中一个文件夹中的所有150个工作簿中删除特定的选项卡/工作表。我用来删除选项卡的容器绑定脚本突然停止工作。它现在只删除其所附工作簿的选项卡,而就在几周前,它还从所有150个工作簿中删除了该选项卡。我一定是无意中改变了什么,但我不知道是什么。任何帮助都将不胜感激!

这是我的脚本:

function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
}
function deleteSheets() {
var sourceFolder = DriveApp.getFolderById("FOLDER ID");
var folderFiles = sourceFolder.getFiles();
var source = SpreadsheetApp.getActiveSpreadsheet().getSheets()[2];'
SpreadsheetApp.getActiveSpreadsheet().deleteSheet(source); 
}

在您的脚本中,活动电子表格的第三页似乎被删除了。并且,不使用特定文件夹中的文件。我认为这就是你当前问题的原因。为了删除FOLDER ID特定文件夹中每个谷歌电子表格中的特定表格(第三张(。下面的修改怎么样?

修改的脚本:

function deleteSheets() {
var sourceFolder = DriveApp.getFolderById("FOLDER ID");
var files = sourceFolder.getFilesByType(MimeType.GOOGLE_SHEETS);
while (files.hasNext()) {
var file = files.next();
var ss = SpreadsheetApp.open(file);
var deleteSheet = ss.getSheets()[2]; // or var deleteSheet = ss.getSheetByName("sheetName");
if (deleteSheet) {
ss.deleteSheet(deleteSheet);
}
}
}
  • 运行此脚本时,将从FOLDER ID文件夹中检索电子表格文件。并且,每个电子表格中的第三张表格将被删除
  • 如果要按图纸名称删除图纸,请将var deleteSheet = ss.getSheets()[2];修改为var deleteSheet = ss.getSheetByName("sheetName");

注意:

  • 在此脚本中,将从每个电子表格中删除一张工作表。因此,作为对这个脚本的测试,我建议使用一个示例电子表格

参考文献:

  • getFilesByType(mimeType(
  • 类文件
  • 打开(文件(

按名称从电子表格中删除表格

function dsh(n="Second") {
const ss = SpreadsheetApp.getActive();
const folder = DriveApp.getFolderById("");
const files = folder.getFilesByType(MimeType.GOOGLE_SHEETS);
while(files.hasNext()) {
let f = files.next();
let ss = SpreadsheetApp.openById(f.getId());
let sh = ss.getSheetByName(n);
if(sh) {
ss.deleteSheet(sh);
}
}
}

最新更新