首页 > 解决方案 > 如何使用谷歌应用脚​​本在饼图中设置颜色

问题描述

我使用宏创建了一个基本脚本,以在 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”,当我重新运行脚本时,这些结果会反映在显示的图表中。

标签: google-apps-script

解决方案


罗斯的回答在某些时候停止了对我的工作。

这现在有效:

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

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


推荐阅读