Google AppScript 忽略空行
Google AppScript Ignore blank rows
我有一个输出脚本,它获取一行中每个单独单元格的单元格内容并将它们输出到 txt 文件(这些文本文件输出到一个从动态列表命名的文件夹)。我所在的页面 运行 这个脚本是动态的,所以有时会有一些空行 - 我想从输出脚本中排除所有空白行,但我无法弄清楚。下面是当前脚本(除了空白行问题外,它运行良好)
function Output() {
var ss = SpreadsheetApp.getActive();
var sh = ss.getActiveSheet();
var rg = sh.getRange(2, 2, sh.getLastRow(), 2);
var vs = rg.getValues();
vs.forEach(r => DriveApp.getFolderById(deleteOutput('1m_-D9loocLQEJ_2AMWS1EAm3pJeFycpV', r[0])).createFile('output.txt', r[1]));
}
function deleteOutput(parentId, name) {
var parent = DriveApp.getFolderById(parentId);
var id;
var folders = parent.getFoldersByName(name);
if (folders.hasNext()) {
var folder = folders.next();
id = folder.getId();
var files = folder.getFiles();
while (files.hasNext()) {
var file = files.next();
if (file.getName() == 'output.txt') { file.setTrashed(true) }
}
}
else {
var folder = parent.createFolder(name);
id = folder.getId();
}
return id;
}
任何人都可以帮助我或指出正确的方向以便我可以排除这些行
非常感谢任何帮助:)
消除空白行
function Output() {
var ss = SpreadsheetApp.getActive();
var sh = ss.getActiveSheet();
var rg = sh.getRange(2, 2, sh.getLastRow()-1, 2);
var vs = rg.getValues().filter(r => r.join(""));//eliminates blank rows
}
尝试:
var vs = rg.getValues().filter(r => r.every(Boolean));
将 .every(Boolean)
与 .filter()
结合使用将删除所有行,但每个单元格都包含值的行除外。
了解更多:
我有一个输出脚本,它获取一行中每个单独单元格的单元格内容并将它们输出到 txt 文件(这些文本文件输出到一个从动态列表命名的文件夹)。我所在的页面 运行 这个脚本是动态的,所以有时会有一些空行 - 我想从输出脚本中排除所有空白行,但我无法弄清楚。下面是当前脚本(除了空白行问题外,它运行良好)
function Output() {
var ss = SpreadsheetApp.getActive();
var sh = ss.getActiveSheet();
var rg = sh.getRange(2, 2, sh.getLastRow(), 2);
var vs = rg.getValues();
vs.forEach(r => DriveApp.getFolderById(deleteOutput('1m_-D9loocLQEJ_2AMWS1EAm3pJeFycpV', r[0])).createFile('output.txt', r[1]));
}
function deleteOutput(parentId, name) {
var parent = DriveApp.getFolderById(parentId);
var id;
var folders = parent.getFoldersByName(name);
if (folders.hasNext()) {
var folder = folders.next();
id = folder.getId();
var files = folder.getFiles();
while (files.hasNext()) {
var file = files.next();
if (file.getName() == 'output.txt') { file.setTrashed(true) }
}
}
else {
var folder = parent.createFolder(name);
id = folder.getId();
}
return id;
}
任何人都可以帮助我或指出正确的方向以便我可以排除这些行
非常感谢任何帮助:)
消除空白行
function Output() {
var ss = SpreadsheetApp.getActive();
var sh = ss.getActiveSheet();
var rg = sh.getRange(2, 2, sh.getLastRow()-1, 2);
var vs = rg.getValues().filter(r => r.join(""));//eliminates blank rows
}
尝试:
var vs = rg.getValues().filter(r => r.every(Boolean));
将 .every(Boolean)
与 .filter()
结合使用将删除所有行,但每个单元格都包含值的行除外。
了解更多: