Google apps script 将一张工作表复制到Google Drive中特定文件夹中的各种电子表格的脚本
我有一张表格,我需要将它复制到Google Drive中给定文件夹中的数百张电子表格中。我只是从脚本开始,我不知道如何继续,因为下面的脚本只是给了我一个错误。谢谢Google apps script 将一张工作表复制到Google Drive中特定文件夹中的各种电子表格的脚本,google-apps-script,spreadsheet,Google Apps Script,Spreadsheet,我有一张表格,我需要将它复制到Google Drive中给定文件夹中的数百张电子表格中。我只是从脚本开始,我不知道如何继续,因为下面的脚本只是给了我一个错误。谢谢 function myFunction() { var source = SpreadsheetApp.getActiveSpreadsheet(); var sheet = source.getSheets()[0]; var folder = DriveApp.getFoldersByName('TEST FOR SCRIPT')
function myFunction() {
var source = SpreadsheetApp.getActiveSpreadsheet();
var sheet = source.getSheets()[0];
var folder = DriveApp.getFoldersByName('TEST FOR SCRIPT');
var contents = folder.getFiles();
for (var i = 0; i < contents.length; i++) {
file = contents[i];
}
sheet.copyTo(contents).setName('ANSWERS');
}
函数myFunction(){
var source=SpreadsheetApp.getActiveSpreadsheet();
var sheet=source.getSheets()[0];
var folder=DriveApp.getFoldersByName(“脚本测试”);
var contents=folder.getFiles();
对于(变量i=0;i
这行代码:
var folder = DriveApp.getFoldersByName('TEST FOR SCRIPT');
返回一个。即使您只有一个同名文件夹,getFoldersByName()
方法也会返回一个对象,您不能直接在该对象上使用getFiles()
方法。getFiles()
方法适用于Files类。它对文件夹迭代器不可用。获取文件夹迭代器后,必须使用next()
方法获取对象中的第一个(可能是唯一的)文件夹
function getAllFilesInFolder() {
var source = SpreadsheetApp.getActiveSpreadsheet();
var sheet = source.getSheets()[0];
var folders = DriveApp.getFoldersByName('Folder Name Here');
var firstFolder = folders.next();
var folderFiles = firstFolder.getFiles();
var thisFile;
while (folderFiles.hasNext()) {
thisFile = folderFiles.next();
Logger.log(thisFile.getName());
};
};
并使用
hasNext()
循环浏览文件。文件对象似乎没有length
属性。Google+社区中的某个人给了我这个答案,它可以工作:
function copyToSheets() {
var source = SpreadsheetApp.getActiveSpreadsheet();
var sheet = source.getSheets()[1];
var folders = DriveApp.getFoldersByName('ID');
var firstFolder = folders.next();
var folderFiles = firstFolder.getFiles();
var thisFile;
while (folderFiles.hasNext()) {
thisFile = folderFiles.next();
var currentSS = SpreadsheetApp.openById(thisFile.getId());
sheet.copyTo(currentSS);
currentSS.getSheets()[currentSS.getSheets().length-1].setName('NAME');
}
}
您可以使用调试器逐行运行每一行代码。如何使用复制文件夹加载项:@BjornBehrendt我不明白你的评论。我的问题是把一张表格复制到其他电子表格,而不是将文件夹成倍增加。谢谢。谢谢@sandygood,但正如我之前提到的,由于我对代码一无所知,我不知道如何继续处理您发送的内容。请您完成代码,以便其他人可以找到完整的答案,只需复制代码即可?在您发送给我的邮件的末尾,我应该放些什么,以便它最终将该表格复制到其他电子表格中?谢谢。更具体地说,如果我只添加sheet.copyTo(thisFile.setName('ANSWERS');在您发送给我的邮件的末尾,它告诉我“找不到方法copyTo(File)”