You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在App Script中实现堆叠柱形图并将A列设为表头

Google Sheets脚本设置A列为图表表头的解决方案

问题说明

要生成目标图表,已通过脚本完成行列切换,但找不到对应“使用A列作为表头”复选框的命令,当前脚本生成的图表缺少表头,只差这一步即可达成目标效果。

当前使用的脚本:

function myFunction() {
  const sheetTest = SpreadsheetApp.getActive().getSheetByName("test");

  const numRows = sheetTest.getLastRow();     // e.g. 9
  const numCols = sheetTest.getLastColumn();  // e.g. 3

  const chartRange = sheetTest.getRange(1, 1, numRows, numCols);
  const chart = sheetTest.newChart()
    .asColumnChart()
    .addRange(chartRange)
    .setStacked()
    .setPosition(1, 4, 0, 0)
    .setTransposeRowsAndColumns(true)
    .build();

  sheetTest.insertChart(chart);
}

解决方法

在图表构建链中添加setOption('useFirstColumnAsDomain', true)即可实现“使用A列作为表头”的效果,修改后的脚本如下:

function myFunction() {
  const sheetTest = SpreadsheetApp.getActive().getSheetByName("test");

  const numRows = sheetTest.getLastRow();     // e.g. 9
  const numCols = sheetTest.getLastColumn();  // e.g. 3

  const chartRange = sheetTest.getRange(1, 1, numRows, numCols);
  const chart = sheetTest.newChart()
    .asColumnChart()
    .addRange(chartRange)
    .setStacked()
    .setPosition(1, 4, 0, 0)
    .setTransposeRowsAndColumns(true)
    .setOption('useFirstColumnAsDomain', true) // 开启第一列作为表头
    .build();

  sheetTest.insertChart(chart);
}

参数说明

useFirstColumnAsDomain是Google Sheets图表API的配置选项,设置为true后,会将数据范围的第一列(即A列)作为图表的类别轴(表头),和手动勾选“使用A列作为表头”复选框的效果完全一致。

内容的提问来源于stack exchange,提问作者benchenggis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 02:52:31