情况如下。我有一个带有两个表格的电子表格:'Sheet1'和'Sheet2'。它们都有三列数据,共54行。我想在一个EmbeddedChart中添加两个工作表的范围。这是我的代码片段:
function testplot(){
var s = SpreadsheetApp.getActiveSpreadsheet();
var degrees = s.getSheetByName('Sheet1').getRange('A1:A54'); //domain
var range1 = s.getSheetByName('Sheet1').getRange('B1:B54'); //header:'B1 SinA'
var range2 = s.getSheetByName('Sheet1').getRange('C1:C54'); //header:'C1 CosA'
var range3 = s.getSheetByName('Sheet2').getRange('B1:B54'); //header:'B2 SinA'
var range4 = s.getSheetByName('Sheet2').getRange('C1:C54'); //header:'C2 CosA'
var chartsheet = s.getActiveSheet();
var chartbuilder = chartsheet.newChart()
.setChartType(Charts.ChartType.LINE)
.addRange(degrees)
.addRange(range1)
.addRange(range2)
.addRange(range3)
.addRange(range4)
.setOption('useFirstColumnAsDomain', true)
.setPosition(5,2,0,0)
.setOption('height',300)
.setOption('width',900)
.setOption('theme','maximized')
.setOption('pointSize',2)
.setOption('curveType','function')
var chart = chartbuilder.build();
chartsheet.insertChart(chart);
}
结果图表仅显示“Sheet1”的范围:
这是手动添加所有范围时图表的样子:
我做错了什么?
提前感谢您的帮助!
答案 0 :(得分:1)
这似乎是Apps脚本中的一个错误,我提出了一个问题来跟踪它:
https://code.google.com/p/google-apps-script-issues/issues/detail?id=4026
问题似乎与具有相同边界的范围有关,因此作为解决方法,您可以抵消范围,以便它们具有不同的边界。
答案 1 :(得分:1)
解决方法可能是:
var range1 = s.getSheetByName('Sheet1').getRange('B1:B54');
var range2 = s.getSheetByName('Sheet1').getRange('C1:C54');
var range3 = s.getSheetByName('Sheet2').getRange('B1:B55');
var range4 = s.getSheetByName('Sheet2').getRange('C1:C55');
超出值范围不会导致图表结果出现问题,并且无需移动数据即可实现此操作。