Google apps script 我需要一个应用程序脚本来构建一个图表/图表,这个脚本看起来就像我在谷歌工作表中手工制作的一样
下面是我直接在谷歌表单上制作的动态图表。它会自动更新。所以,当我想要创建一个报告时,我使用应用程序脚本将其转换为图像,并将其复制到谷歌文档中 这是我的问题:上面的图表示一个基于用户选择的日期范围的累积图 我现在需要的是在这个范围内创建每日图表,以按天分解这些统计数据。因为我永远不知道有多少天会在它们指定的范围内,所以我必须以编程方式构建这些图,然后将它们插入到google工作表中 我已经知道了如何做到这一点,但我能做的最接近的是使每日图表看起来像上面的一个,如下所示:Google apps script 我需要一个应用程序脚本来构建一个图表/图表,这个脚本看起来就像我在谷歌工作表中手工制作的一样,google-apps-script,google-sheets,charts,Google Apps Script,Google Sheets,Charts,下面是我直接在谷歌表单上制作的动态图表。它会自动更新。所以,当我想要创建一个报告时,我使用应用程序脚本将其转换为图像,并将其复制到谷歌文档中 这是我的问题:上面的图表示一个基于用户选择的日期范围的累积图 我现在需要的是在这个范围内创建每日图表,以按天分解这些统计数据。因为我永远不知道有多少天会在它们指定的范围内,所以我必须以编程方式构建这些图,然后将它们插入到google工作表中 我已经知道了如何做到这一点,但我能做的最接近的是使每日图表看起来像上面的一个,如下所示: 我根本找不到使第二张图
我根本找不到使第二张图表看起来与第一张相似所需的信息。任何人都有可能有所帮助的建议吗?您可以复制现有图表并修改其属性以生成新图表 示例代码:
function insertChart(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet5");
var charts = sheet.getCharts();
for(var i in charts){
if(charts[i].getOptions().get('title')== 'Types of Incidents Over Time'){
var chart = charts[i];
var modifiedChart = chart
.modify()
.clearRanges()
.addRange(sheet.getRange("A25:B29"))
.setOption('title','New Chart')
.setOption('vAxis.gridlines', {minSpacing: 2})
.setOption('vAxis.minorGridlines.count', 1)
.setPosition(25,5,0,0)
.build();
sheet.insertChart(modifiedChart);
}
}
}
输出:
function insertChart(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet5");
var charts = sheet.getCharts();
for(var i in charts){
if(charts[i].getOptions().get('title')== 'Types of Incidents Over Time'){
var chart = charts[i];
var modifiedChart = chart
.modify()
.clearRanges()
.addRange(sheet.getRange("A25:B29"))
.setOption('title','New Chart')
.setOption('vAxis.gridlines', {minSpacing: 2})
.setOption('vAxis.minorGridlines.count', 1)
.setPosition(25,5,0,0)
.build();
sheet.insertChart(modifiedChart);
}
}
}
它是干什么的?
vAxis.gridlines
minspacing,因为当我尝试获取现有图表的vAxis.gridlines
时,它返回了一个null
值。讨论了图表选项的详细信息
谢谢你,罗恩。我最终做了类似的事情,但我发现你的回答非常有用;特别是为了填补我知识上的一些空白。我很感激。欢迎,很乐意帮忙