我正在使用一个既有数字值又有文本值的工作表。我想做的是删除所有带有文本值的行,只保留带有数值的行。在这幅图中,a列代表我目前拥有的,b列代表我想要实现的。我有一个示例代码,可以用来删除单个值,但是我如何才能使它适用于所有字符,而不仅仅是特定的单词?
function deleteEmptyRows(){
var sh = SpreadsheetApp.getActiveSheet();
var data = sh.getDataRange().getValues();
var targetData = new Array();
for(n=0;n<data.length;++n){
if(data[n].join().replace(/,/g,'')!=''){ targetData.push(data[n])};
Logger.log(data[n].join().replace(/,/g,''))
}
sh.getDataRange().clear();
sh.getRange(1,1,targetData.length,targetData[0].length).setValues(targetData);
}
而且,不一定是这个解决方案起作用。我正在寻找最好的解决办法。这只是我发现的一个例子。
2条答案
按热度按时间siv3szwd1#
对于您的示例,它可能如下所示:
evrscar22#
你说它不需要是一个使用脚本的解决方案?那也许你可以用
QUERY()
和matches()
条款我不确定当前正则表达式的用法,但它对当前显示的示例数据进行了正确匹配,其中:
\d+
-1+位数。(?:-\d+)?
-可选的非捕获组,其中一个连字符后跟1+个数字。