簡體   English   中英

使用GAS將電子表格中的圖表圖像插入文檔中

[英]Inserting chart images from Spreadsheet into Document using GAS

電子表格中包含的我的腳本會創建一個新的文檔,並根據電子表格數據插入表格和段落。 我還想將腳本中的圖表(或這些圖表的jpg圖像)插入到文檔中。 似乎有可能,但不起作用。 這是我的代碼:

function insertChartImage(){
  var charts = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Score Card').getCharts();
  var chart = charts[0].getAs('image/png');  // similar result with 'gif'
  var doc = DocumentApp.openById(documentId);
  doc.getBody().appendImage(chart);          // similar result with insertImage()
}

結果是一個空白容器結果(和我登錄的課程),顯示“用戶未登錄”。

我一直在尋找文檔,示例或教程,但沒有任何運氣。 這有沒有可能……似乎是一個基本要求……能夠在文檔中包含圖表,但這也許就是我嗎?

我將非常感謝您的任何建議或為我提供好的文檔指導。

最終的解決方案是重建圖表。 這是一個例子:

function insertBarChart(body) {   
  var values = SpreadsheetApp.getActive().getRange("Score!B2:D7").getValues();
  var dataTable = Charts.newDataTable()
        .addColumn(Charts.ColumnType.STRING, values[0][0])      
        .addColumn(Charts.ColumnType.NUMBER, values[0][1])      
        .addColumn(Charts.ColumnType.NUMBER, values[0][2])      
        .addRow(['Ownership', values[1][1], values[1][2]])   
        .addRow(['Control', values[2][1], values[2][2]])    
        .addRow(['Skills', values[3][1], values[3][2]])       
        .addRow(['Development', values[4][1], values[4][2]])   
        .addRow(['Social', values[5][1], values[5][2]])  
        .build(); 
  var chart = Charts.newColumnChart()      
    .setDataTable(dataTable)      
    .setColors(["green", "red"])      
    .setDimensions(600, 400)      
    .setXAxisTitle("Elements")      
    .setYAxisTitle("Points")      
    .setTitle("Profile")      
    .build();
  var scale = 0.5;
  var img = body.appendImage(chart.getAs('image/png'));
  img.setHeight(img.getHeight()*scale).setWidth(img.getWidth()*scale);
}

(2017年5月)Google似乎已解決此問題。 您的原始代碼對我有用,不會產生空白容器:

function insertChartImage(){
  var charts = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Score Card').getCharts();
  var chart = charts[0].getAs('image/png');  // similar result with 'gif'
  var doc = DocumentApp.openById(documentId);
  doc.getBody().appendImage(chart);          // similar result with insertImage()
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM