2012-06-19 7 views
5

Dies ist meine kurze Funktion ‚bekommen Spalten außerhalb der Grenzen sind‘, die „Die Säulen sind außerhalb der Grenzen“EmbeddedChartBuilder mit und

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

Ich habe versucht, sheet.getRange("A1:B6") und wird immer.

Die erste Spalte sind Daten und die zweite Spalte sind Inte. Der Standard Graph Graph GUI einfügen kann die Daten unverändert verwenden.

Hat jemand mit den neuen EmbeddedGraph-Klassen Erfolg gehabt? danke

Antwort

8

Das Problem ist nicht der Eingabedatenbereich, aber wo das Diagramm in den Build-Prozess platziert wird. Es versucht, das Diagramm über die Daten auf der Seite zu setzen. Sie müssen auf dem chartBuilder verwenden, um zu sagen, wohin das Diagramm gehen soll. Ich glaube, es wird versuchen, es in Zeile 1, Spalte 1 zu setzen, wenn Sie nichts angeben, was bedeutet, dass es wahrscheinlich versucht, Ihre Daten zu überschreiben.

Versuchen Sie, Ihre letzte Zeile mit diesem

sheet.insertChart(chartBuilder.setPosition(7, 1, 1, 1).build()); 

setPosition Parameter

ersetzen sind: int Row, int Col, Offset-Reihe, versetzt Col.

+0

Das ist perfekt! :) danke Serge – wild

+0

@ScottR - Ich habe deine Bearbeitung genehmigt, obwohl ich denke, dass es nicht wirklich notwendig war, aber wenn du denkst, es macht es expliziter, warum nicht? Der Link zum doc ist ein guter Gedanke, ich hätte es machen sollen ;-) –

+0

Ich hatte das gleiche Problem, aber ich habe Ihren Code genau kopiert und den gleichen Fehler wie der OP bekommen, weil meine Daten anders waren. Als ich erkannte, was das zugrunde liegende Problem war (Diagramm Standort überschreiben Daten), habe ich es herausgefunden. Daher dachte ich, die Bearbeitung könnte die Antwort für andere Leute wie mich schneller machen! – ScottR