2017-01-11 12 views
-1

GoogleのGoogleスプレッドシートからGoogleのガントチャートを作成し、GoogleスプレッドシートからHTMLをウェブとして提供しようとしていますアプリ。私は他のタイプのチャートでこのトリックを行うことができましたが、 "無効なデータテーブルフォーマット:列3のタイプが '日付'でなければならないというように、日付フォーマットに問題があると思います。Googleシートのデータを収集してGoogleスクリプトのガントチャートを作成し、HTMLをウェブアプリケーションとして提供する

私はJavascriptに精通していないので、私は本当にここで失われています。私のCode.gsのコードはここにあります。ファイルはプライベートでなければなりません。それは私の仕事Gsuiteにありますが、Google Gantt Charts documentationのようにフォーマットされたデータを持つ簡単なテストです。

function doGet() { 

    return HtmlService 
    .createTemplateFromFile("Index") 
    .evaluate() 
    .setTitle("MKT Simple Cycle") 
    .setSandboxMode(HtmlService.SandboxMode.IFRAME); 
} 


function getCycle() { 

    var ssID = "1p4jEZtSk4GoVWvR9OrZj2ou1dpUbl6GHYUlJ1bSVY-s", 
    sheet = SpreadsheetApp.openById(ssID).getSheets()[0], 
    data = sheet.getDataRange().getValues(); 
    return data 

} 

そして、ここでは私のJavascript.html上のコードです:

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> 

<script type="text/javascript"> 
google.charts.load('current', {'packages':['gantt']}); 
google.charts.setOnLoadCallback(getCycle); 

function getCycle() { 
    google.script.run.withSuccessHandler(drawChart).getCycle(); 
} 

function drawChart(rows) { 

    var data = google.visualization.arrayToDataTable(rows, false); 

    var options = { 
    height: 400, 
    gantt: { 
     trackHeight: 30 
    } 
    }; 

    var chart = new google.visualization.Gantt(document.getElementById('Cycle')); 

    chart.draw(data, options); 

} 

+0

[データ形式](https://developers.google.com/chart/interactive/docs/gallery/ganttchart#data-format)を確認してください。すべての列に_Resource ID_以外のデータが必要です任意の空白? – WhiteHat

答えて

0

ここでの問題は、sheet.getDataRange().getValues();を返す文字列、ガントチャートは開始日終了を必要とします日付はjavascriptのDateオブジェクトになります。あなたは(あなたがいない場合、あなたのシートでリソースID列、またはセル2と3を持っている場合)Dateオブジェクトでセル3および4内の文字列を変換し、dataに持って配列による

サイクル。

row[2] = new Date(row[2]); 
row[3] = new Date(row[3]); 

これで問題は解決します。

関連する問題