我正在研究如何做我需要的事情,我发现 this video并认为这对我来说是完美的。
它展示了如何在页面上设置脚本来导入整个文件夹,这正是我所需要的。我有 14 张相同的纸。我需要将 A2:F
从所有这些复制到一张纸中。这是脚本:
function getdata() {
var files = DriveApp.getFolderById("0B94fkeHjleasRF9QMDFlcHllRVU").getFiles()
while (files.hasNext()) {
var file = files.next();
var shoot = SpreadsheetApp.openById(file.getId());
var sourcesheet = SpreadsheetApp.getActive().getSheetByName("Sheet1");
var sourcerange = sourcesheet.getRange('A2:F');
var sourcevalues = sourcerange.getValues();
var destsheet = shoot.getSheetByName('Sheet1');
var destrange = destsheet.getRange('A2:F');
destrange.setValues(sourcevalues);
}
}
问题是:虽然它在视频中有效,但我似乎无法让它为我工作。我玩了最后一行(我收到错误)。我设法让脚本删除我需要复制的所有信息。哈哈。显然我需要帮助。谁能看出这个脚本中有什么明显的错误吗?
我尝试过 importRange
但它在数组公式上挂起。这个脚本看起来很完美,如果我能让它工作就好了。
最佳答案
这段代码:
- 从特定文件夹获取文件
- 循环遍历文件夹中的所有文件
- 测试文件的 Mime 类型以仅获取电子表格
- 从源工作表选项卡中获取所有值
- 将所有新数据写入现有数据的末尾
要使此代码正常工作,您必须输入文件夹 ID、源工作表选项卡名称和目标电子表格文件 ID。
代码:
function getdata() {
//declare multiple variables in one statement - Initial value will
//be undefined
var destinationSpreadsheet,destinationSS_ID,destsheet,destrange,file,files,
sourcerange,sourceSS,sourcesheet,srcSheetName,sourcevalues;
srcSheetName = "Type the Name of Source Sheet Tab Here";
destinationSS_ID = "Type the Name of destination spreadsheet file ID Here";
files = DriveApp.getFolderById("Folder ID").getFiles();
destinationSpreadsheet = SpreadsheetApp.openById(destinationSS_ID);
destsheet = destinationSpreadsheet.getSheetByName('Sheet1');
while (files.hasNext()) {
file = files.next();
if (file.getMimeType() !== "application/vnd.google-apps.spreadsheet") {
continue;
};
sourceSS = SpreadsheetApp.openById(file.getId());
sourcesheet = sourceSS.getSheetByName(srcSheetName);
//sourcesheet.getRange(start row, start column, numRows, number of Columns)
sourcerange = sourcesheet.getRange(2,1,sourcesheet.getLastRow()-1,6);
sourcevalues = sourcerange.getValues();
//Write all the new data to the end of this data
destrange = destinationSpreadsheet.getSheetByName("Sheet1")
.getRange(destsheet.getLastRow()+1,1,sourcevalues.length,sourcevalues[0].length);
destrange.setValues(sourcevalues);
};
};
关于google-apps-script - Google Sheet 脚本将文件夹范围导入到一张工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34646340/