如何通过Google Scripts实现Google Sheet表格图表按第二列降序排序
解决表格图表排序报错及实现第二列降序的方法
错误原因
你遇到的TypeError是因为setInitialSortingDescending并不是表格图表(EmbeddedTableChartBuilder)的可用方法,这个方法不属于表格图表的构建器API,调用时自然会报错。
两种可行解决方案
方案1:预先排序数据源
如果允许修改原始数据的顺序,可以先对目标数据区域按第二列降序排序,图表会直接沿用排序后的顺序:
// 按第二列(参数column从1开始计数)降序排序数据源 tablePrice.sort({column: 2, ascending: false}); // 创建表格图表 var chart = workingSheet.newChart() .setChartType(Charts.ChartType.TABLE) .addRange(tablePrice) .addRange(tableSubteam) .setTransposeRowsAndColumns(true) .setMergeStrategy(Charts.ChartMergeStrategy.MERGE_ROWS) .setPosition(row2, col1, 0, 0) .build(); workingSheet.insertChart(chart);
方案2:通过图表选项配置初始排序
如果不想改动原始数据的顺序,可以直接通过setOption方法设置表格图表的排序参数(列索引从0开始计数,第二列对应索引1):
var chart = workingSheet.newChart() .setChartType(Charts.ChartType.TABLE) .addRange(tablePrice) .addRange(tableSubteam) .setTransposeRowsAndColumns(true) .setMergeStrategy(Charts.ChartMergeStrategy.MERGE_ROWS) // 指定第二列(索引1)降序排序 .setOption('sortColumn', 1) .setOption('sortAscending', false) .setPosition(row2, col1, 0, 0) .build(); workingSheet.insertChart(chart);
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

