javascript - Google App脚本根据该单元格的字体颜色清除单元格值
问题描述
我有一个谷歌表,上面有很多值,是否可以编写一个小函数来清除所有具有红色字体颜色的单元格中的所有值。
解决方案
解释:
您需要做的第一件事是获取数据范围的字体颜色。获取数据范围的一种直接方法是使用getDataRange()。要获取数据范围的字体颜色,您需要使用getFontColors()。后者给出了单元格的十六进制字体颜色代码。谷歌表格中的红色(颜色选择器中的第二行第二列
ui
)是#ff0000
.现在您有了颜色数组,您需要遍历每一行和每个元素并检查颜色是否等于
#ff0000
. 如果是,则使用clearContent()清除该单元格的内容。
解决方案:
选择工作表的名称而不是Sheet1
。
function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sh = ss.getSheetByName('Sheet1');
const colors = sh.getDataRange().getFontColors();
colors.forEach( (r,i) => {
r.forEach((c,j)=>{
if (c=='#ff0000'){
sh.getRange(i+1,j+1).clearContent();}
})})
}
限制:
虽然这种方法对于大量数据非常有效,但在两个forEach
循环中getRange
迭代执行并不是一个好习惯。但我希望它对你有用。
推荐阅读
- node.js - Mongoose 如何填充和匹配填充的字段
- python - 正则表达式:如何在 python 中使用 re.sub() 将两个完全匹配组合成一个?
- python - GIMP bash,将图层添加到现有的 GUI 实例
- python - Unable to deploy Cloud Formation via Ansible as Jinja templates
- api-platform.com - Api Platform Mercure Private Updates Use same JWT for subscribing to Mercure as for User authentication
- reactjs - React Native FlatList 块 InteractionManager.runAfterInteractions
- java - 将 Flyway 4.1.2 升级到 6.4.4 导致 NoSuchMethodError: org.flywaydb.core.Flyway.getLocations()
- javascript - Javascript array returns unordered index list when logged from $.ajax call
- javascript - 环形
通过数组并在本机反应中并排显示 - python - 如何在 Pandas 的同一行中删除重复值?