将表格复制到另一个电子表格[Google Apps Script]
Copy sheet to another spreadsheet [Google Apps Script]
我不能让这个函数工作。它必须复制电子表格"A"的所有值到电子表格"B"。
function triggerOnTime() {
var SpreadSheetKeyA = "142WNsfQQkSx4BuNhskDM9aXD9ylRHNZh34oO5TBTt1g";
var SpreadSheetKeyB = "1h8fDwCUUPHRdmTHu-5gMyqU294ENZxCZcHCNCuN6r_Y";
var sheet1 = SpreadsheetApp.openById(SpreadSheetKeyA).getActiveSheet();
var sheet2 = SpreadsheetApp.openById(SpreadSheetKeyB).getActiveSheet();
var data = sheet1.getDataRange().getValues();
var array = [];
for (var y = 1; y < data.length; y++) {
for (var x = 0; x < 35; x++){
array.push(data[y][x]);
}
Logger.log(array);
sheet2.appendRow(array);
sheet1.deleteRow(y);
}
}
它现在复制两个或三个值,但复制它们多次(随机)。该函数还必须从sheetA中删除复制的值。但是它只删除添加到sheetB中的值。
EDIT(更新后的代码)
function triggerOnTime() {
var SpreadSheetKeyA = "142WNsfQQkSx4BuNhskDM9aXD9ylRHNZh34oO5TBTt1g";
var SpreadSheetKeyB = "1h8fDwCUUPHRdmTHu-5gMyqU294ENZxCZcHCNCuN6r_Y";
var sheet1 = SpreadsheetApp.openById(SpreadSheetKeyA).getActiveSheet();
var sheet2 = SpreadsheetApp.openById(SpreadSheetKeyB).getActiveSheet();
var data = sheet1.getDataRange().getValues();
var array = [];
for (var y = 0; y < data.length; y++) {
for (var x = 0; x < 35; x++){
array.push(data[y][x]);
}
sheet2.appendRow(array);
sheet1.deleteRow(y+1);
array = [];
}
}
在玩了一会儿之后,我已经为你找到了一个修复(尽管是一个hack,我猜。)我肯定有更好的方法来做这件事)
发生的事情是,在第14行你的appendRow(array),你是追加数组在它的当前状态第二页;基本上是创建一个数组值的大金字塔。
如果表格1包含如下内容:1 1 1
2 2 2
3, 3, 3
4, 4, 4
5 5 5
你的表格2将得到这个附加:1 1 1
1, 1, 1, 2, 2, 2
1, 1, 1, 2, 2, 2, 3, 3, 3
…等等。
你可以这样做:
function triggerOnTime() {
var SpreadSheetKeyA = "142WNsfQQkSx4BuNhskDM9aXD9ylRHNZh34oO5TBTt1g";
var SpreadSheetKeyB = "1h8fDwCUUPHRdmTHu-5gMyqU294ENZxCZcHCNCuN6r_Y";
var sheet1 = SpreadsheetApp.openById(SpreadSheetKeyA).getActiveSheet();
var sheet2 = SpreadsheetApp.openById(SpreadSheetKeyB).getActiveSheet();
var data = sheet1.getDataRange().getValues();
var array = [];
for (var y = 1; y < data.length; y++) {
for (var x = 0; x < 35; x++){
array.push(data[y][x]);
}
sheet2.appendRow(array);
sheet1.deleteRow(y);
array = []; //reset the array contents
}
}
附加行将重置数组并添加您想要复制的行。
让我知道这是否适合你。
相关文章:
- Google Apps Script中的标准Javascript
- Google Apps 脚本为 getLastRow 抛出电子邮件失败通知,我做错了什么
- Google Apps 脚本在单元格中返回行值
- 在Google Apps上从JavaScript迁移到Python
- 在 Google Apps 脚本中,无法以编程方式创建触发器以从 onEdit 触发器发送电子邮件
- Google Apps 脚本中的格式化日期
- Google Apps 脚本:尝试根据单元格的背景颜色发送电子邮件
- Google Apps 脚本,用于根据一个单元格的值对另一个单元格进行条件颜色格式设置
- 如何转换SalesForce Api提供的UTC日期格式,并使用Google Apps脚本将其转换为本地日期和时间格式
- Google UiApp中的Google Apps脚本验证问题
- 添加“;密码”;键入Google Apps Script inputBox
- 找不到Google Apps脚本库嵌套函数
- HTTP POST 和 Google Apps Script 文件上传
- Google Apps Script 中基于 Twitter OAuth Pin 的授权“oob”
- Google-apps-script不会在onEdit函数中发送电子邮件
- 在 Google Apps Script Web App 中显示文件和文件夹
- 使用 Google Apps 脚本处理数组中输入元素中的多个文件
- 在 Google Apps 脚本中调用函数
- Google 电子表格:如何使用 Google Apps 脚本命名范围
- Google Apps 脚本:解析 XML 会导致错误:“无法在对象中找到函数 getChildren”