使用 Google Apps 脚本,您可以创建一个函数:
删除工作表中的所有边框。
查找所有应应用边框的空行。
为这些行设置边框。
以下代码执行上述操作:
function setSheetBorders() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName('Sheet1');
// Remove all borders
var dataRange = sheet.getDataRange();
dataRange.setBorder(false, false, false, false, false, false);
var firstColumn = sheet.getRange("A:A").getValues();
var ranges = [];
for (var i=1; i<firstColumn.length; i++) {
if (firstColumn[i][0]) {
ranges.push("A" + i + ":" + i);
}
}
sheet.getRangeList(ranges).setBorder(false, false, true, false, false, false, "black",
SpreadsheetApp.BorderStyle.SOLID_MEDIUM);
}
触发脚本的执行
关于执行此脚本,理想的情况是在编辑工作表时自动执行它。这可以使用onEdit() 触发器来完成。设置它就像在绑定到工作表的脚本中创建以下函数一样简单:
function onEdit(e) {
setSheetBorders();
}
但是,这将仅在用户编辑工作表时执行,而不是在脚本编辑工作表时执行。
由于对表格文档的修改是为了可视化目的,我建议您改用onOpen() 触发器。这将导致每当用户访问文档时执行上述脚本。
function onOpen(e) {
setSheetBorders();
}
此外,您还可以考虑创建custom menu。这将允许您在想要使用 UI 时手动触发脚本。
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Custom Menu')
.addItem('Set Sheet Borders', 'setSheetBorders')
.addToUi();
setSheetBorders();
}