如何使用Google Apps脚本在饼图中设置颜色

时间:2019-06-11 18:08:47

标签: google-apps-script

我使用了宏来创建基本脚本,以在Google表格中生成饼图。饼图和所有特征似乎都可以正常工作,除了系列的颜色(切片)。当我打开脚本并输入新的颜色时,尽管宽度,高度,图例位置等其他项目都可以正常工作,但它仍默认为红色和蓝色。我认为它是一个基本的语法问题,或者可能是链接问题,或者是序列问题……?我是编码的新手,只能使用它来扩展基于Web的电子表格的业务功能。预先感谢您提供的任何帮助!

基本上,我尝试过将颜色更改为各种不同的选项,并且颜色始终保持蓝色和红色。当我修改高度和宽度时,脚本可以正确运行。

function addPieChart() {

  var ss = SpreadsheetApp.getActive();
  var sheet1 = ss.getSheetByName('d2cStaging');
  var dashboard = ss.getSheetByName('Dashboard');

  var totalChartLabels = sheet1.getRange("R5:R7");
  var totalChartValues = sheet1.getRange("T5:T7");

  var totalsChart = sheet1.newChart()
  .setChartType(Charts.ChartType.PIE)
  .addRange(totalChartLabels)
  .addRange(totalChartValues)
  .setMergeStrategy(Charts.ChartMergeStrategy.MERGE_COLUMNS)
  .setPosition(6,7,0,0)

  .setOption('series.0.color', 'GREEN')
  .setOption('series.1.color', 'YELLOW')

  .setOption('legend.position', 'bottom')
  .setOption('pieSliceText', 'value-and-percentage')
  .setOption('width', 300)
  .setOption('height', 300)
  .setNumHeaders(1)
  .build();

  dashboard.insertChart(totalsChart);

}

我希望能够将series.0.color更改为“ PURPLE”,将series.1.color更改为“ ORANGE”,并且当我重新运行脚本时,这些结果将反映在显示的图表中。

2 个答案:

答案 0 :(得分:1)

ross 的 answer 在某个时候停止为我工作。

这现在有效:

charts.forEach((chart) => {
    chart = chart.modify()
        .asPieChart()
        .setColors(headerColors)
        .build();
    sheet.updateChart(chart);
});

主要部分是 .asPieChart().setColors(colors) 作为 .setOption('colors', colors)

的替代品

答案 1 :(得分:0)

要求:

设置使用脚本构建的图表的系列颜色。


解决方案:

使用EmbeddedChartBuilder .setOption()选项“颜色”。


示例:

.setOption('colors', ['red','blue','#ff0000'])

说明:

您可以使用它来使用字符串值或十六进制设置颜色,放置它们的顺序将是其在系列中使用的顺序,因此系列0将是{{1 }}。

您可以查看Class EmbeddedChartBuilder here可用的所有选项的文档。