[英]Google Script to copy from each sheet in folder to a master sheet in folder based?
我有一個名為“ TEST FOLDER”的文件夾,我有兩個電子表格,TEST1和TEST2,還有一個電子表格,稱為MASTER。 我想在MASTER Spreadsheet中有一個腳本,該腳本可以在每天運行一次的Trigger上工作。 它將在“ TEST FOLDER”中的任何SPREADSHEET中運行,並將所有新行復制到MASTER SHEET中。 我將“復制”放在一列中以檢查一個值,以確保沒有行被復制兩次。
var folder = DocsList.getFolder("TEST FOLDER");
var contents = folder.getFiles();
var file;
var data;
for (var i = 0; i < contents.length; i++) { file = contents[i];
if (file.getFileType() == "SPREADSHEET") {
continue;
}
var s = SpreadsheetApp.getActiveSpreadsheet();
var startRow = 2;
var numRows = sheet.getLastRow();
var dataRange = sheet.getRange(startRow, 1, numRows, 6);
var data = dataRange.getValues();
var copied = row[5]; //copied indicator cell
if(copied != "Copied")
{
var target = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("MASTER");
var targetSheet = target.getRange(rowIndex, nameCol).getValue();
if (target.getSheetByName(targetSheet)) {
// set our target sheet and target range
var targetSheet = ss.getSheetByName(targetSheet);
var targetRange = targetSheet.getRange(targetSheet.getLastRow()+1, 1, 1, colNumber);
var sourceRange = s.getRange(rowIndex, 1, 1, colNumber);
sourceRange.copyTo(targetRange);
sheet.getRange(startRow + i, 6).setValue("Copied");
SpreadsheetApp.flush();
}
}
}
到目前為止,這是我的代碼。 一世
我更改了一些代碼,此代碼必須正常工作。 請根據您的文件結構進行調整
function getDataToMaster() {
var folder = DriveApp.getFolderById("IdOfFolder"); //Define id of folder
var contents = folder.getFiles();
var file;
var data;
var sheetMaster = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]; //first sheet of the file, change by getSheetByName("NAME") if you want
while(contents.hasNext()){
file = contents.next();
if (file.getMimeType() == "application/vnd.google-apps.spreadsheet") {
var sheet = SpreadsheetApp.openById(file.getId()).getSheets()[0];//first sheet of the file, change by getSheetByName("NAME") if you want
var startRow = 2;
var data = sheet.getDataRange().getValues();
var colToCheck = 6;
for(var j = 1; j < data.length;j++){
if(data[j][colToCheck-1] != "copied"){
sheetMaster.appendRow(data[j]);
sheet.getRange((j+1), colToCheck).setValue("copied");
SpreadsheetApp.flush();
}
}
}
}
}
斯特凡
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.