2013-06-25 49 views
3

我一直在尋找谷歌可視化的過去幾天,併成功地使它在單個網頁或電子表格中使用內置插入 - >圖表創建器工作。但是,當我自己編輯javascript時,我希望這些數據仍然可以在Google電子表格中顯示。我查看了應用程序腳本,我只能通過將它發佈爲一個應用程序,然後將其發送給完全不同的網頁來使其工作。如何將谷歌可視化圖表嵌入電子表格

是否存在的JavaScript如

function drawVisualization() { 
    // Create and populate the data table. 
    var data = google.visualization.arrayToDataTable([ 
     ['Region', 'count'], 
     ['West', 8000], 
     ['South', 7272], 
     ['Northeast', 5333], 
     ['Midwest', 4444], 
     ['Southwest', 5714] 
    ]); 

    // Create and draw the visualization. 
    new google.visualization.PieChart(document.getElementById('visualization')). 
     draw(data, {title:"Sales Per Region"}); 
    } 

到谷歌文檔或電子表格,或者是不支持的任何方式,我可以嵌入我的習慣嗎?

回答

1

可以使用Charts Services,並通過了UiApp

例如GS代碼的文檔顯示您的餅圖

function getChart(dataTable){ 
    var chartBuilder = Charts.newPieChart() 
     .setTitle('Sales Per Region') 
     .setDimensions(600, 500) 
     .set3D() 
     .setDataTable(dataTable); 

    return chartBuilder.build(); 
} 

function showChart(){ 
    var dataTable = Charts.newDataTable() 
     .addColumn(Charts.ColumnType.STRING, "Region") 
     .addColumn(Charts.ColumnType.NUMBER, "Count") 
     .addRow(['West', 8000]) 
     .addRow(['South', 7272]) 
     .addRow(['Northeast', 5333]) 
     .addRow(['Midwest', 4444]) 
     .addRow(['Southwest', 5714]) 
     .build(); 

    var chart = getChart(dataTable) 

    //insert into the spreadsheet 
    SpreadsheetApp.getActiveSheet().insertChart(chart) 
} 

作秀您需要的最後一行替換到

DocumentApp.getUi().showSidebar(UiApp.createApplication().add(chart)) 

但無論如何,這些圖表將在對話框(或邊欄)中,而不是在文檔的內容中。 在文檔中,你可以將它們通過轉換成圖像,所以

var chart = getChart(dataTable) 
    var imageChart = chart.getAs('image/jpeg'); 

,並增加內容

DocumentApp.getActiveDocument().getBody().appendImage(imageChart);