使用 Google Apps 脚本复制数据
Data copying with Google Apps Script
我正在尝试在Google Apps Script中编写一个脚本,该脚本从一张工作表中获取单元格信息并将其复制到另一张工作表,既可以抓取某些列以显示在第二张工作表上,也可以基于某个列中单元格内的值的条件。这是我到目前为止所拥有的:
function onMyEdit() {
var myMaster = SpreadsheetApp.openById("xxxxx");
var masterSheet = myMaster.setActiveSheet(myMaster.getSheets()[0]);
var myNames = SpreadsheetApp.openById("xxxxx");
var namesSheet = myNames.setActiveSheet(myNames.getSheets()[0]);
var row1 = masterSheet.getRange(1, 1, masterSheet.getLastRow(), 1);
var rowV = row1.getValues();
var firstArray = masterSheet.getDataRange().getValues();
var dataList = [];
for (var i = 1; i < rowV.length; i++) {
dataList.push(firstArray[i][0]);
dataList.push(firstArray[i][1]);
dataList.push(firstArray[i][2]);
dataList.push(firstArray[i][3]);
}
for (var j = 0; j < rowV.length - 1; j++) {
namesSheet.getRange(2, j + 1, 1, 1).setValue(dataList[j]);
}
}
因此,到目前为止,它仅适用于一行,从第二行开始(以允许列标题)。我想当我想根据单元格数据有条件地抓取行时,我将对"for"循环中的条件使用"if"语句,但我希望数据复制到两个工作表中的下一个可用行。我想我会使用类似的东西: ' getLastRow + 1 '或类似的东西。我需要这段代码尽可能高效,因为数据量及其用途。我对编程很陌生,所以请详细解释,再次感谢。
我不确定我是否完全理解您想做什么,但是 - 根据我的理解 - 这段代码片段应该为您提供更好的开始方式......
(我添加了一些注释在代码本身中解释)
function onMyEdit() {
var myMaster = SpreadsheetApp.openById("MasterSheet ID");
var masterSheet = myMaster.getSheets()[0]; // get 1rst sheet
var myNames = SpreadsheetApp.openById("NamesSheet ID");
var namesSheet = myNames.getSheets()[0]; // get 1rst sheet
var firstArray = masterSheet.getDataRange().getValues();
var dataList = [];
for ( r = 1; r < firstArray.length; r++) { // iterate the first col of masterSheet
if(firstArray[r][0]=='some condition'){ // if value in the first column == 'some condition get the second column cell in the new array (here you could change what you want to get)
dataList.push([firstArray[r][1]])
}
}
Logger.log(dataList)
if(dataList.length>0){
namesSheet.getRange(1,namesSheet.getLastColumn()+1,dataList.length,1).setValues(dataList);//copy data in a column after last col
}
}
相关文章:
- 使用Emscripten Worker API传输数据而不进行复制
- 使用数据属性将HTML数据复制到另一个元素
- 从表单字段复制数据并将其放在echo语句中,所有这些都在$xml=simplexmlload_file函数中
- 使用push复制数据网格结构
- KnockoutJS复制数据开销
- 将数据从一个工作表复制到另一个工作表;使用目标工作表中的复制数据创建一个表
- 从网页版式扩展程序复制数据
- ZClip - 通过按住 Alt 单击按钮来复制数据
- 使用 jQuery 循环访问form_for选择框中复制数据
- 将javascript保存到mysql数据库+复制数据URL
- 如何复制数据从网格到mysql数据库在php
- jQuery.clone()使用withdataanddevents似乎不复制数据
- 如何在不复制数据的情况下在站点中的页面之间共享静态数据
- Do赋值操作总是从右向左复制数据
- 试图创建一个chrome扩展,将从浏览器选项卡a复制数据,并填写在浏览器选项卡B上的表单
- jQuery.clone(false)仍然从原始数据源复制数据
- 如何复制数据网格列easyui的值
- 角度服务复制数据
- 使用 Google Apps 脚本复制数据
- 从一个表单复制数据,并使用jQuery或Javascript将其粘贴到多个表单中