Javascript 谷歌工作表-通过工作表列表动态更改图形栏颜色

Javascript 谷歌工作表-通过工作表列表动态更改图形栏颜色,javascript,google-sheets,graph,Javascript,Google Sheets,Graph,我试着从我的表格颜色的T列中读取我想要应用到我的图表的每个第二个系列中的颜色 我正在尝试不同的解决方案: 如果我从单个单元格中获取值,然后应用到选项,则该选项有效。但我会在代码中读取100个复制相同指令的值 我希望创建一个颜色数组(我做过),然后在图形的每个条上应用for循环 下面是代码 function updateColor2() { var ss = SpreadsheetApp.getActive(); var ws = ss.getActiveSheet(); var charts

我试着从我的表格颜色的T列中读取我想要应用到我的图表的每个第二个系列中的颜色

我正在尝试不同的解决方案: 如果我从单个单元格中获取值,然后应用到选项,则该选项有效。但我会在代码中读取100个复制相同指令的值

我希望创建一个颜色数组(我做过),然后在图形的每个条上应用for循环

下面是代码

 function updateColor2() {
var ss = SpreadsheetApp.getActive();
var ws = ss.getActiveSheet();
var charts = ws.getCharts();
var chart = charts[0];
var id = chart.getId();
var colour= ws.getRange('T9:T13').getValues()
//var colour =[];
//var colour = ws.getRange(9, 20).getValue();//
Logger.log(colour);
chart = chart.modify()

//for (var i = 0; i < 4; i++) {
 //var colour =[];
 //colour.push(ws.getRange(i+9,20).getValue();
             
.setOption('series.2.items.0.color', colour[0])
.setOption('series.2.items.1.color', colour[1])
.setOption('series.2.items.2.color', colour[2])
.setOption('series.2.items.3.color', colour[3])
.setOption('series.2.items.4.color', colour[4])
 //            }
.build();
ws.updateChart(chart);
函数updateColor2(){
var ss=SpreadsheetApp.getActive();
var ws=ss.getActiveSheet();
var charts=ws.getCharts();
var图表=图表[0];
var id=chart.getId();
var color=ws.getRange('T9:T13').getValues()
//var颜色=[];
//var color=ws.getRange(9,20).getValue()//
Logger.log(彩色);
chart=chart.modify()
//对于(变量i=0;i<4;i++){
//var颜色=[];
//color.push(ws.getRange(i+9,20).getValue();
.setOption('series.2.items.0.color',color[0])
.setOption('series.2.items.1.color',color[1])
.setOption('series.2.items.2.color',color[2])
.setOption('series.2.items.3.color',color[3])
.setOption('series.2.items.4.color',color[4])
//            }
.build();
ws.updateChart(图表);
向图表动态添加选项: 在循环的每次迭代中,通过向图形中添加一个附加选项,并通过迭代中的再次构建它,如下所示:

for (let i = 0; i < colour.length; i++) {
  chart = chart.modify()
               .setOption('series.2.items.' + i + '.color', colour[i])
               .build();
}

感谢您,它工作正常!我只需在代码无法停止运行的情况下添加一点修改。
for(让I=0;i@PaoloMesolella对不起,这是我的一个排版,只是修复了它(<代码>颜色>长度>代码>。你会考虑吗?这很有用,因为这个社区依赖它来分享知识给其他用户。
var colour= ws.getRange('T9:T13').getValues().flat();