gpt4 book ai didi

javascript - 将 google sheet 的副本复制到 google drive 文件夹中

转载 作者:行者123 更新时间:2023-11-30 19:11:46 25 4
gpt4 key购买 nike

我有两个电子表格。第一个电子表格包含我的原始数据,指示员工编号和员工姓名。第二个电子表格是我要复制到谷歌驱动器文件夹中的电子表格。我想根据第一个电子表格中的员工编号和员工姓名更新第二个电子表格中的特定字段。每次更新第二个电子表格中的单元格时,它都会将第二个电子表格的副本创建到谷歌驱动器文件夹中。

但是,它一直只在复制的电子表格中设置一个值。它不会循环第一个电子表格中的员工姓名和员工编号。

我的代码已经在复制第二个电子表格。只是值没有更新。

 function replicateCards() {
var ss = SpreadsheetApp.openById('xxxxxxxx');
var copyCard = SpreadsheetApp.openById('zzzzzzzzz');
var getID = DriveApp.getFileById(copyCard.getId())
var card = copyCard.getSheetByName("Card");
var mastersheet = ss.getSheetByName("Mastersheet");
var getLastRow = mastersheet.getLastRow();
var destinationFolder = DriveApp.getFolderById('yyyyyyyyyy');
;
var changeColorToGrayList = card.getRangeList(['C7', 'E7', 'G7', 'I7', 'K7', 'M7', 'O7', 'Q7',
'C9', 'E9', 'G9', 'I9', 'K9', 'M9', 'O9', 'Q9',
'C11', 'E11', 'G11', 'I11', 'K11', 'M11', 'O11', 'Q11']);
var setValueToZero = card.getRangeList(['C8', 'E8', 'G8', 'I8', 'K8', 'M8', 'O8', 'Q8',
'C10', 'E10', 'G10', 'I10', 'K10', 'M10', 'O10', 'Q10',
'C12', 'E12', 'G12', 'I12', 'K12', 'M12', 'O12', 'Q12']);

for (i = 1; i < getLastRow; i++) {

var employeeNumber = mastersheet.getRange(i + 1, 1).getValue();
var employeeName = mastersheet.getRange(i + 1, 2).getValue();
card.getRange("C3").setValue(employeeName);
card.getRange("H3").setValue(employeeNumber);
card.setActiveRangeList(changeColorToGrayList).setBackground("gray");
card.setActiveRangeList(setValueToZero).setValue(0);
// var getID = DriveApp.getFileById(card).getId();
getID.makeCopy(employeeNumber + " High Flyer Card", destinationFolder);
}
}

我希望 getID.makeCopy(employeeNumber + "High Flyer Card", destinationFolder); 的输出包含不同的员工编号和员工姓名,而不仅仅是 google 文件夹中的一个值。

最佳答案

您的代码应按预期工作,除非大文件使代码重叠。

如果是,执行flush()将使您的代码按顺序运行,请参阅 here以获得详细的解释。

在您的情况下,将 for 循环修改为

  for (i = 1; i < getLastRow; i++) {
var employeeNumber = mastersheet.getRange(i + 1, 1).getValue();
var employeeName = mastersheet.getRange(i + 1, 2).getValue();
card.getRange("C3").setValue(employeeName);
card.getRange("H3").setValue(employeeNumber);
card.setActiveRangeList(changeColorToGrayList).setBackground("gray");
card.setActiveRangeList(setValueToZero).setValue(0);
getID.makeCopy(employeeNumber + " High Flyer Card", destinationFolder);
SpreadsheetApp.flush();
}

应该可以解决问题。

关于javascript - 将 google sheet 的副本复制到 google drive 文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58394867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com