javascript - 如果前一个单元格包含十六进制颜色名称,如何更改单元格的颜色?

标签 javascript google-apps-script google-sheets

在谷歌表格上,我有一个单列数据集,其中每个单元格都包含十六进制颜色名称(即#eac285)

如何以编程方式将下一列中相应单元格的背景颜色设置为这些颜色?

我可以用 "=function(x)"格式执行此操作

最佳答案

说明:

这个想法是获取包含十六进制颜色的列的值,然后使用 setBackgrounds在其旁边的列上设置背景颜色。

  • 您无法将此解决方案用作自定义函数(工作表中的自定义公式),因为自定义函数不允许使用需要权限的方法,例如为工作表设置值。有关此限制的更多详细信息,请参阅 official documentation .

  • 如果您想要一种更用户友好的方式来执行此操作,您可以从脚本编辑器运行以下脚本(根据您的场景进行调整)和/或创建一个自定义菜单来从那里执行它。

代码片段:

function myFunction() {
  const ss = SpreadsheetApp.getActiveSpreadsheet()
  const sh = ss.getSheetByName("Sheet1");
  const hex_colors = sh.getRange('A1:A'+sh.getLastRow()).getValues();
  sh.getRange('B1:B'+sh.getLastRow()).setBackgrounds(hex_colors);
}

用于代码片段的示例表:

enter image description here

关于javascript - 如果前一个单元格包含十六进制颜色名称,如何更改单元格的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65944323/

相关文章:

javascript - 不包含 block 引用的节点的查询选择器

google-sheets - 谷歌表格: ArrayFormula with CountBlank

google-apps-script - 反向缩短的 URL 以获取 Google 表格中缩短前的原始 URL

google-apps-script - 在 Google Form 中使用 Google App Script 动态显示/隐藏表单项

google-sheets - 需要求和公式

javascript - 在悬停另一个元素时更改元素样式

javascript - 在同一个 useEffect 中依赖地使用相同的数据

javascript - D3 : Separating data exit/remove/merge from drawing of elements

javascript - 重新调查 "Trying to make different HTML paragraph show depending on selection"

google-apps-script - 使用 Sendgrid 和谷歌应用程序脚本发送电子邮件