google-sheets - 我想使用圆圈在 Google 表格上创建一个复选框功能
问题描述
目前,我只能复制粘贴阴影或无阴影的圆圈。我想在 Google 表格中创建类似“插入复选框”的功能。我想知道这是否可行,或者我是否应该手动完成。
解决方案
问题:
- 您想通过单击菜单按钮、插入的绘图或图像或您拥有的特定单元格(我猜是当前选定的单元格)插入空白圆圈(◯)。
- 每次单击时,您都希望将插入的空白圆圈更改为黑色圆圈 (⚫)。
解决方案:
使用Google Apps 脚本(单击Tools > Script editor
以访问它),您可以执行以下操作:
- 创建一个用空白圆圈填充所有活动范围的函数(我们称之为
addBlankCircles
)。使用getActiveRangeList()获取选定的范围,并为每个范围创建一个具有相应维度的二维数组,用空白圆圈填充,并使用setValues(values)将空白圆圈添加到范围中。 - 创建自定义菜单(由
onOpen
触发器创建)或插入可点击的图像或绘图以调用函数addBlankCircles
。 - 使用onSelectionChange触发器检查所选单元格是否具有值 ◯,如果是,则将其更改为 ⚫。
代码片段:
// Copyright 2020 Google LLC.
// SPDX-License-Identifier: Apache-2.0
function onOpen() { // Add this only in case you want to call your function through a custom menu
const ui = SpreadsheetApp.getUi();
ui.createMenu('Add circles')
.addItem('Add Blank Circles', 'addBlankCircles')
.addToUi();
}
function addBlankCircles() {
const rangeList = SpreadsheetApp.getActiveRangeList();
rangeList.getRanges().forEach(range => {
const columns = range.getNumColumns();
const rows = range.getNumRows();
const values = new Array(rows).fill("").map(() => new Array(columns).fill("◯"));
range.setValues(values);
})
}
function onSelectionChange(e) { // Change blank to black
if (e.range.getValue() === "◯") e.range.setValue("⚫");
}
推荐阅读
- c - 带有字符串参数的 VOID 函数与带有返回 char 数组的字符串参数的函数之间的区别?
- iphone - 什么是咆哮者和模态?
- sharepoint - 如何在 SharePoint 中创建接受有限回复的调查列表?
- php - 尝试更新数组的元素删除元素而不是实现它
- android - 如何根据 PhilJay 的 MPAndroidChart 库在图表中的 x 轴分区值设置背景颜色?
- javascript - 无法使用 reducer 中的条件语句更改处于状态的数组的第二个值 --- Redux
- linux - 如何修改 netcat 命令行以一次发送多个请求
- javascript - 我该如何做这个 if 语句?
- python - 将复杂的 txt 文件(包括数组)读取到 Python
- laravel - 如何在编辑表单中捕获表上的 1 个列(id)