2013-05-23 2 views
0

저는 Apps Script가 처음이고 Google 스프레드 시트에서 Apps Script에 간단한 TableChart를 만들려고합니다. "객체 유형이 열 유형과 일치하지 않습니다."라는 오류가 계속 발생하고 웹에서 찾을 수있는 모든 솔루션을 시도해 보았지만이를 지나치는 방법을 파악할 수 없습니다. 내가 가진 코드는 다음과 같습니다Google Apps Script - 개체 유형이 열 유형과 일치하지 않습니다.

function doGet() { 
var ss = SpreadsheetApp.openById('0AkEJIKjP5Q4LdFh1ZjJOUF9BQ0J2YUNwVm50eGEyTEE'); 
var sss = ss.getSheetByName('Customer Updates'); 
var data = sss.getDataRange(); 

var referenceFilter = Charts.newCategoryFilter().setFilterColumnIndex(29).build(); 

var tableChart1 = Charts.newTableChart() 
       .setDimensions(900, 100) 
         .setDataViewDefinition(Charts.newDataViewDefinition().setColumns([29,1,28,30,48])).build(); 

    var tableChart2 = Charts.newTableChart() 
       .setDimensions(900, 100)         
        .setDataViewDefinition(Charts.newDataViewDefinition().setColumns([31,32,33,34,36])).build() ; 

var tableChart3 = Charts.newTableChart() 
       .setDimensions(900, 60) 
        .setDataViewDefinition(Charts.newDataViewDefinition().setColumns([37])).build(); 

var tableChart4 = Charts.newTableChart() 
       .setDimensions(900, 60) 
        .setDataViewDefinition(Charts.newDataViewDefinition().setColumns([38])).build(); 

    var tableChart5 = Charts.newTableChart() 
       .setDimensions(900, 60) 
       .setDataViewDefinition(Charts.newDataViewDefinition().setColumns([39])).build(); 

var tableChart6 = Charts.newTableChart() 
       .setDimensions(900, 60) 
       .setDataViewDefinition(Charts.newDataViewDefinition().setColumns([40])).build(); 

var tableChart7 = Charts.newTableChart() 
       .setDimensions(900, 60) 
       .setDataViewDefinition(Charts.newDataViewDefinition().setColumns([41])).build(); 

var tableChart8 = Charts.newTableChart() 
       .setDimensions(900, 60) 
       .setDataViewDefinition(Charts.newDataViewDefinition().setColumns([42])).build(); 

var tableChart9 = Charts.newTableChart() 
       .setDimensions(900, 60) 
       .setDataViewDefinition(Charts.newDataViewDefinition().setColumns([43])).build(); 

var tableChart10 = Charts.newTableChart() 
       .setDimensions(900, 60) 
       .setDataViewDefinition(Charts.newDataViewDefinition().setColumns([44])).build(); 

var tableChart11 = Charts.newTableChart() 
       .setDimensions(900, 60) 
       .setDataViewDefinition(Charts.newDataViewDefinition().setColumns([45])).build(); 

var tableChart12 = Charts.newTableChart() 
       .setDimensions(900, 60) 
       .setDataViewDefinition(Charts.newDataViewDefinition().setColumns([46])).build(); 

var dashboard = Charts.newDashboardPanel().setDataTable(data) 
       .bind([referenceFilter], [tableChart1,tableChart2,tableChart3,tableChart4,tableChart5,tableChart6,tableChart7,tableChart8,tableChart9,tableChart10,tableChart11,tableChart12]) 
       .build(); 


var app = UIApp.createApplication(); 
var filterPanel = app.createHorizontalPanel(); 
var chartPanel1 = app.createHorizontalPanel(); 
var chartPanel2 = app.createHorizontalPanel(); 
var chartPanel3 = app.createHorizontalPanel(); 
var chartPanel4 = app.createHorizontalPanel(); 
var chartPanel5 = app.createHorizontalPanel(); 
var chartPanel6 = app.createHorizontalPanel(); 
var chartPanel7 = app.createHorizontalPanel(); 
var chartPanel8 = app.createHorizontalPanel(); 
var chartPanel9 = app.createHorizontalPanel(); 
var chartPanel10 = app.createHorizontalPanel(); 
var chartPanel11 = app.createHorizontalPanel(); 
var chartPanel12 = app.createHorizontalPanel(); 

filterPanel.add(referenceFilter).setSpacing(7).setHeight(10); 
chartPanel1.add(tableChart1); 
chartPanel2.add(tableChart2); 
chartPanel3.add(tableChart3); 
chartPanel4.add(tableChart4); 
chartPanel5.add(tableChart5); 
chartPanel6.add(tableChart6); 
chartPanel7.add(tableChart7); 
chartPanel8.add(tableChart8); 
chartPanel9.add(tableChart9); 
chartPanel10.add(tableChart10); 
chartPanel11.add(tableChart11); 
chartPanel12.add(tableChart12); 

    dashboard.add(app.createVerticalPanel().add(filterPanel).add(chartPanel1).add(chartPanel2). add(chartPanel3).add(chartPanel4).add(chartPanel5).add(chartPanel6).add(chartPanel7).add(ch artPanel8).add(chartPanel9).add(chartPanel10).add(chartPanel11).add(chartPanel2)); 
app.add(dashboard); 
return app; 

} 

이 오류가 라인 VAR 대시 보드 = Charts.newDashboardPanel()에있다 setDataTable (데이터)

어떤 아이디어.?

+0

http://stackoverflow.com/questions/14132295/google-charts-object-error 가능한 중복. – Mogsdad

답변

2

스프레드 시트에서 각 열에 대해 모든 값이 동일한 유형임을 보장해야합니다. 첫 번째 행의 텍스트로 시작할 수 없습니다. 다른 행 번호 (또는 부사)보다 번호를 먼저 사용할 수 없습니다.

또한 스크립트에서 모든 것을 표준화 할 수 있습니다 (예 :

var data = sss.getDataRange().getValues(); 
var dataTable = Charts.newDataTable(); 
for(var j in data[0]) 
    dataTable.addColumn(Charts.ColumnType.STRING, data[0][j]); 
fpr(var i = 1; i < data.length; ++i) 
    dataTable.addRow(data[i].map(String)); 

var dashboard = Charts.newDashboardPanel().setDataTable(dataTable); 

여기서 모든 문자열을 강제로 사용 했으므로 NUMBER 열이 필요하다면 아이디어를 얻었을 것입니다.

+0

감사합니다 Henrique. 치료를 했어. –