Google Scripts API。使细胞背景透明

时间:2012-08-13 18:42:10

标签: google-apps-script

我有一张带有表格的Google文档。表格细胞是黑色和白色。目标:使用Google Scripts API删除单元格背景(使所有单元格背景透明)。

有没有办法这样做?我以各种方式尝试了Cell.setBackgroundColor(颜色)(通过使用“none”,“null”,“transparent”,“”等作为输入)但这不起作用。

使所有细胞变白不是一种可接受的解决方法。

谢谢, 亚历

1 个答案:

答案 0 :(得分:3)

嗯。刚试过以下代码。它按预期工作 - 将'D10:E20'范围的彩色背景更改为白色,单元格A1和A2包含文本

  • #980000
  • none

即。范围背景是'无'而不是白色。功能是

function myFunction() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var range = sheet.getRange('D10:E20');
  sheet.getRange('A1').setValue(range.getBackgroundColor());
  range.setBackground('none');
  sheet.getRange('A2').setValue(range.getBackgroundColor());
}

编辑00 :对不起,我误解了你。修复我的错,我创建了一个文本文档和一个小脚本(见下文)。在文档中,我创建了一个新表,并且在没有任何进一步修改的情况下,我启动了该脚本。结果是

  • 单元格[0,0]包含Background is null文本,代码会在We're sorry, a server error occurred. Please wait a bit and try again. (line 14)行中引发cell00.setBackgroundColor(bg00);例外。的错误的即可。

在文档编辑器中,我通过Table->Table properties对话框将单元格[0,0]背景更改为黄色。结果是

  • 单元格[0,0]文本为#ffff00。没有错误。 <强>正确即可。

我将单元格背景更改为None。结果是

  • 单元格[0,0]包含Background is empty文本,代码会在Invalid color value. (line 14)行中引发cell00.setBackgroundColor(bg00);例外。的错误的即可。

我的观点是标记为错误的点是一个错误。您必须向issue tracker提交问题。当然,您可以使用我的代码和本文来描述问题。

function testDoc() {
  var doc = DocumentApp.openById('the-text-document-id');
  var cell00 = doc.getTables()[0].getCell(0, 0);
  var bg00 = cell00.getBackgroundColor();
  if (bg00 == null) {
    cell00.setText('Background is null');
  }
  else if (bg00 == '') {
    cell00.setText('Background is empty');
  }
  else {
    cell00.setText(bg00);
  }
  cell00.setBackgroundColor(bg00);
}