Google 脚本图表默认排除标题

问题描述 投票:0回答:2

使用以下脚本:

function chartCreation() {
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getSheetByName("Sheet1");
  var chart = sheet.newChart().asColumnChart()
    .setTitle('Test Chart')
    .addRange(sheet.getRange(1, 1, sheet.getLastRow(), 4))
    .setPosition(1,1,0,0)
  sheet.insertChart(chart.build()); 
}

生成这样的图表,其中图例为空(即数据系列未标记)。 Chart Example

我读到这可能是由于我的标题行的格式所致,该格式应该是文本(我的是,但似乎没有使用)。如果我尝试在 Google Sheets 中构建它,通过图表构建器对话框,它可以正常工作并包含数据系列标签。

如何使用 Google Apps 脚本设置“使用第 1 行作为标题”选项?

这个问题类似,但没有关于非文本格式的答案。

google-apps-script google-sheets google-visualization
2个回答
4
投票

注意:这篇文章基于此SO Post,甚至适用于柱形图。尽管柱形图配置选项没有记录它。

可以使用

labelInLegend
配置选项中的
series
设置图例值,如此处所述。(导航至选项系列)

您的代码将如下所示:

function chartCreation() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName("Sheet1");
var headerRow = sheet.getRange(1,1,1,4).getValues()
var chart = sheet.newChart().asColumnChart()
.setTitle('Test Chart')
.addRange(sheet.getRange(1, 1, sheet.getLastRow(), 4))
.setPosition(1,1,0,0)
.setOption('series', 
     {0:{labelInLegend:headerRow[0][1]},
      1:{labelInLegend:headerRow[0][2]},
      2:{labelInLegend:headerRow[0][3]}})
 sheet.insertChart(chart.build()); 
}

0
投票

我尝试过这个并且效果很好

.setOption('series', 
     {0:{labelInLegend:headerRow[0][1]},
      1:{labelInLegend:headerRow[0][2]},
      2:{labelInLegend:headerRow[0][3]}})
 sheet.insertChart(chart.build());
© www.soinside.com 2019 - 2024. All rights reserved.