我想从本表格中删除所有提到“外卖”、“带回家”、“带回家”等的工作:https://docs.google.com/spreadsheets/d/1UgiKHokV3bpeuCF4lhgc9aQisE3c86OyVjZeats9u24/edit#gid=0。
此代码不执行任何操作:
function myFunction() {
var sheet = SpreadsheetApp.openById("1UgiKHokV3bpeuCF4lhgc9aQisE3c86OyVjZeats9u24");
var data = sheet.getDataRange().getValues();
for (var i = data.length - 1; i>=0; i--) {
if (data[i][0].includes('takehome')) {
sheet.deleteRow(i);
}
}
}我该怎么做,谢谢!
发布于 2022-09-08 13:40:24
试着改变台词:
if (data[i][0].includes('takehome')) {
sheet.deleteRow(i); 通过以下方式:
if (data[i][0].match(/take([^a-z]*)home/i)) {
sheet.deleteRow(i+1); [^a-z]*指的是除字母顺序从a到z之外的任何(或无)符号。
i的意思是忽略案例。
以防万一,完整的代码在这里:
function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
for (var i = data.length - 1; i >= 0; i--) {
if (data[i][0].match(/take([^a-z]*)home/i)) sheet.deleteRow(i + 1);
}
}发布于 2022-09-08 14:15:51
我做了这个改变,它起了作用:
var ss = SpreadsheetApp.openById("1UgiKHokV3bpeuCF4lhgc9aQisE3c86OyVjZeats9u24");
var sheet = ss.getSheets()[0];
var data = sheet.getDataRange().getValues();发布于 2022-09-08 14:18:19
试试这个:
function myFunction() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getActiveSheet();
const rem = ["take home", "takehome", "take-home"];//you can add other options in this array
rem.forEach(s => {
sh.createTextFinder(s).matchEntireCell(false).findAll().forEach(r => {
sh.deleteRow(r.getRow());
//Logger.log(r.getRow())
})
})
}另一种可能性是:
function myFunction() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getActiveSheet();
sh.createTextFinder("take.*home").useRegularExpression(true).matchEntireCell(false).findAll().sort((a,b) => b.getRow() - a.getRow()).forEach(r => {
sh.deleteRow(r.getRow());
//Logger.log(r.getRow())
})
}后者将处理包括多个字符在内的所有介于“带回”和“回家”之间的内容。它将删除所有这些:
take home
take-home
takehome
take_home help
takehome
take and add a bunch of charactors homehttps://stackoverflow.com/questions/73649934
复制相似问题