gpt4 book ai didi

google-apps-script - 使用 Apps 脚本创建图表无法插入电子表格

转载 作者:行者123 更新时间:2023-12-01 15:25:09 24 4
gpt4 key购买 nike

此处的目标是在加载电子表格后,以编程方式根据预先存在的数据创建图表。

documentation for the EmbeddedChart class有两个示例,都修改现有图表,并且根据我的要求创建一个新图表:

function newChart(range, sheet){
var sheet = SpreadsheetApp.getActiveSheet();
var chartBuilder = sheet.newChart();
chartBuilder.addRange(range)
.setChartType(Charts.ChartType.Line)
.setOption('title', 'My Line Chart!');
sheet.insertChart(chartBuilder.build());
}

缺少 Google 示例: .setPosition()

我试过实现这个功能,如下所示:

function makeChart(sheet, range) {
Logger.log('MAKING CHART');
var chart = sheet.newChart();
chart.addRange(range)
.setChartType(Charts.ChartType.BAR)
.setOption('title','I love Google Apps Script');
sheet.insertChart(chart.build());
}

工作表和范围定义为:

var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange("C1:D16");

makeChart() 是从 onOpen() 调用的,我可以看到它正在执行。尽管如此,该图表从未出现在电子表格中。

我注意到调用 .build() 方法后不会记录任何内容,但文档中几乎没有关于此方法的内容,只是说明必须在制作图表后调用它.

编辑:脚本失败,因为 .insertChart() 需要一个 EmbeddedChart 对象,但被赋予了一个 EmbeddedChartBuilder。根据文档,.build() 方法应该返回一个 EmbeddedChart。但事实并非如此。

最佳答案

以下代码对我有用,将 A2:B8 范围内的数据显示为工作表中嵌入的条形图。

function varSet(){

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var dataRange = sheet.getRange("A2:B8");

buildChart(sheet, dataRange)

}

function buildChart(sheet, dataRange) {

var newChart = sheet.newChart()
.setChartType(Charts.ChartType.BAR)
.addRange(dataRange)
.setPosition(5, 5, 0, 0)
.build();

sheet.insertChart(newChart);

};

据我所知,唯一真正的区别是我指定了插入图表的位置,并在使用 insertChart() 方法调用它之前创建了图表。希望这会有所帮助。

关于google-apps-script - 使用 Apps 脚本创建图表无法插入电子表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20702483/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com