google-apps-script - 在 Google 电子表格中传输和删除数据
问题描述
我正在尝试使用 Google Apps 脚本创建一个函数,该函数将Yes
在我的 Google 电子表格的特定列中搜索单词。
如果找到Yes
,它将继续将这些整行复制到保存到我的谷歌驱动器的不同电子表格中,然后将其从原始电子表格中删除。
我对这种语言几乎没有经验,但我编写了一些代码。
我正在寻找执行此操作的正确方法以及如何完成我的代码。你会怎么做?
最新代码编辑:
function moveDelete() {
var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var dsh=SpreadsheetApp.getActive().getSheetByName('Sheet2');
var data = sh.getRange(1, 1, sh.getLastRow()-1).getValues();
var range = sh.getRange(1, 1, data.length);
var rowsDeleted = 0;
for (var i = 0; i <= data.length - 1; i++) {3
var array = data[i]
if (array[4] == 'Yes') {
dsh.appendRow(array);
sh.deleteRow((parseInt(i)+1) - rowsDeleted);
rowsDeleted++;
}
}
};
function onOpen() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [{
name : "Send to Record",
functionName : "moveDelete"
}];
sheet.addMenu("Custom Menu", entries);
};
解决方案
解决方案 1 - 转移到同一个文档:
function moveDelete() {
var ss = SpreadsheetApp.getActive()
var sh = ss.getSheetByName('Sheet1');
var dsh= ss.getSheetByName('Sheet2');
var data = sh.getDataRange().getValues();
var rowsDeleted = 0;
for (var i = 0; i <= data.length - 1; i++) {
var array = data[i]
if (data[i][4] == 'Yes') {
dsh.appendRow(array);
sh.deleteRow((parseInt(i)+1) - rowsDeleted);
rowsDeleted++;
}
}
};
解决方案 2(基于评论) - 转移到另一个电子表格文件:
function moveDelete() {
var ss = SpreadsheetApp.getActive();
var ts = SpreadsheetApp.openById("id of the target spreadsheet here"); // example: 31d6k7iXh20rjLn22m0axvscR6-BcyOy_fxhdk-ResXU
var sh = ss.getSheetByName('Sheet1'); // Sheet1 of the source spreadsheet
var dsh= ts.getSheetByName('Sheet2'); // Sheet2 of the target spreadsheet
var data = sh.getDataRange().getValues();
var rowsDeleted = 0;
for (var i = 0; i <= data.length - 1; i++) {
var array = data[i]
if (data[i][4] == 'Yes') {
dsh.appendRow(array);
sh.deleteRow((parseInt(i)+1) - rowsDeleted);
rowsDeleted++;
}
}
};
请注意, 1.4
用作检查第5列即E列的索引。确保获取正确的索引号以选择所需的列。
推荐阅读
- c# - 使用 iTextSharp 向 PDF 添加数字签名 - 智能卡证书(PIN 保护)
- amazon-web-services - 是否可以将数据从 AWS Lambda 传递到 Docker 映像中的 java 程序?
- pandas - 将复合列拆分成我可以旋转的东西
- powershell - 使用 ConvertToDateTme 变量创建 CSV
- kiba-etl - 使用 kiba ETL 检查 CSV 文件标头的最佳位置
- javascript - 总是得到“(0,_reactDom.h)不是函数”或“h未定义”
- java - 无法将命令代理到远程服务器。原始错误:错误:读取 ECONNRESET
- azure-active-directory - 从 Azure AD B2C 自定义策略调用受 OAuth 保护的 REST api
- pygame - 似乎无法同时选择多个圈子
- mobile - 带有附加/前缀下拉列表的文本表单