Google apps script 默认情况下,Google脚本图表不包括标题

Google apps script 默认情况下,Google脚本图表不包括标题,google-apps-script,google-sheets,google-visualization,Google Apps Script,Google Sheets,Google Visualization,使用以下脚本: 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))

使用以下脚本:

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()); 
}
生成这样的图表,其中图例为空(即数据系列未标记)。

我已经读到这可能是由于我的标题行的格式,它应该是文本(我的是文本,但它似乎没有被使用)。如果我尝试在GoogleSheets中构建它,尽管有“图表生成器”对话框,但它工作正常,并且包含数据系列标签

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


与此类似,但没有关于非文本格式的答案。

注意:这篇文章基于此,甚至适用于柱状图。即使柱状图没有记录它

如前所述,可以使用
系列
配置选项中的
标签Legend
设置图例值。(导航到选项系列)

您的代码将如下所示:

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()); 
}

我得到错误:TypeError:无法从undefined读取属性“1”。看来这和头颅有关。我的标题是A1:D1,所以我觉得很好,知道为什么会发生这种情况吗?这一行“var headerRow=sheet.getRange(1,1,1,4).getValues”的语法有误。现在已修复,请尝试更新的代码。谢谢