【问题标题】:Set border color & style in spreadsheet programmatically以编程方式在电子表格中设置边框颜色和样式
【发布时间】:2012-10-15 16:54:53
【问题描述】:

Google 电子表格在工具栏下的边框按钮下还有一个用于更改颜色和更改边框样式的按钮。

如何在 Google Apps 脚本中访问它们?

为文档描述的setBorderColor 函数似乎不适用于电子表格。

【问题讨论】:

标签: colors google-apps-script border google-sheets


【解决方案1】:

报告的问题已修复,as of 12 Jan 2016。 Range 现在有这些方法:

文档中提供了示例;以下是如何设置红色虚线边框*:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var cell = sheet.getRange("B2");
// Sets borders on the top and bottom, but leaves the left and right unchanged
// Also sets the color to "red", and the border to "DASHED".
cell.setBorder(true, null, true, null, false, false, "red", SpreadsheetApp.BorderStyle.DASHED);

*已更正,根据评论:文档有误,应该是 SpreadsheetApp.BorderStyle.DASHED/DOTTED/SOLID,而不是 Range。 – 戈托弗里茨

【讨论】:

  • 遗憾的是示例不起作用,'Range.BorderStyle.DASHED' 给出了'Range undefined' 错误
  • 其实发现了问题——文档有误,应该是SpreadsheetApp.BorderStyle.DASHED/DOTTED/SOLID,而不是Range。
  • @gotofritz 能够信任文档会很好,不是吗?!更新答案,谢谢。
  • 如何获得Border或border样式?我检查了文档中的参考。显然,这还不可能。
【解决方案2】:

目前 setBorder() 属性不允许我们提供颜色和样式。您可以关注 here 一个未解决的问题。

【讨论】:

    【解决方案3】:

    你可以做一个小把戏。将彩色边框单元格中的格式复制到您想要的任何位置。

    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var source = ss.getSheets()[0];
    var destination = ss.getSheets()[1];
    
    var blueBorderRange = source.getRange("B2:D4");
    
    // This copies the formatting in B2:D4 from the source sheet to
    // D4:F6 in the second sheet
    blueBorderRange.copyFormatToRange(destination, 4, 6, 4, 6);
    

    【讨论】:

      猜你喜欢
      • 2015-11-25
      • 1970-01-01
      • 2018-07-23
      • 2022-01-09
      • 1970-01-01
      • 1970-01-01
      • 2011-01-09
      • 2015-04-25
      • 2021-10-18
      相关资源
      最近更新 更多