将列值范围传递给 Apps 脚本中的变量
Pass on a Column range of values to a variable in Apps Script
所以我有这个脚本,如果它的正则表达式匹配一个值(这里是'/exe'),它会删除行。我想将另一个 sheet(比方说 Sheet1)的值的整列 (A2:A) 传递给正则表达式变量,以便在 Sheet2 中比较和删除所有值。任何帮助将不胜感激。
function deleteRows() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet2");
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
var toDelete = [];
var re = new RegExp('/exe');
for (var row = 0; row < values.length; row++) {
for(var column = 0;column<values[row].length;column++){
if (re.exec(values[row][column])){
toDelete.push(row); } } }
for(var deleteRow = toDelete.length-1; deleteRow >= 0;deleteRow--){
sheet.deleteRow(toDelete[deleteRow]+1);
}
SpreadsheetApp.flush();
};
您可以以正则表达式的方式连接它们。
在删除行中,您可以添加
var pattern = "(" + ss
.getSheetByName("Sheet1")
.getDataRange()
.getValues()
.map(function(row) {return row[0];})
.filter(function(row, rowI) {return rowI > 0 && row !== "";})
.join("|") + ")";
从 Sheet1 中获取数据,将第一列提取为数组,删除 header 和空行并将它们与 | 连接,最后我们将其包装在 parens.
那你可以var re = new RegExp(pattern)
;
所以我有这个脚本,如果它的正则表达式匹配一个值(这里是'/exe'),它会删除行。我想将另一个 sheet(比方说 Sheet1)的值的整列 (A2:A) 传递给正则表达式变量,以便在 Sheet2 中比较和删除所有值。任何帮助将不胜感激。
function deleteRows() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet2");
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
var toDelete = [];
var re = new RegExp('/exe');
for (var row = 0; row < values.length; row++) {
for(var column = 0;column<values[row].length;column++){
if (re.exec(values[row][column])){
toDelete.push(row); } } }
for(var deleteRow = toDelete.length-1; deleteRow >= 0;deleteRow--){
sheet.deleteRow(toDelete[deleteRow]+1);
}
SpreadsheetApp.flush();
};
您可以以正则表达式的方式连接它们。 在删除行中,您可以添加
var pattern = "(" + ss
.getSheetByName("Sheet1")
.getDataRange()
.getValues()
.map(function(row) {return row[0];})
.filter(function(row, rowI) {return rowI > 0 && row !== "";})
.join("|") + ")";
从 Sheet1 中获取数据,将第一列提取为数组,删除 header 和空行并将它们与 | 连接,最后我们将其包装在 parens.
那你可以var re = new RegExp(pattern)
;