我正在尝试将特定Google电子表格中的一系列单元格作为图像复制到Google幻灯片上。但是我几乎找不到有用的代码。这就是我的想法,但是我仍然无法将像元范围转换为image / png。
目标:将仅存储在变量中的图像插入特定幻灯片!
非常感谢您的帮助。谢谢。
function add_WSA(){
//Opening the Spreadsheet
var ss = SpreadsheetApp.openById("insertSpreadsheetID");
var range = ss.getRange("example!A1:F20");//in A1 Notation
//Conversion into an png image
var image = range.getAs('image/png');
//Opening the specific Slide (Nr. 3)
var slide = SlidesApp.openById("mySlidesID").getSlides()[2];
//Insertion of image
slide.insertImage(image);
}
错误:TypeError:range.getAs不是一个函数 在add_WSA(report:5:21)
PS:我对社区和JavaScript还是陌生的。请耐心等待。非常感谢您提供其他更精简或更有效的解决方案。谢谢。
答案 0 :(得分:1)
这个答案怎么样?
不幸的是,在当前阶段,范围对象无法直接转换为PNG格式。因此,在这种情况下,需要使用解决方法。在此答案中,作为解决方法,我建议使用Charts Service。使用Charts Service时,电子表格的范围可以转换为图像blob。
function add_WSA(){
//Opening the Spreadsheet
var ss = SpreadsheetApp.openById("insertSpreadsheetID");
var range = ss.getRange("example!A1:F20");//in A1 Notation
//Conversion into an png image
// I modified below script.
const [header, ...values] = range.getDisplayValues();
const table = Charts.newDataTable();
header.forEach(e => table.addColumn(Charts.ColumnType.STRING, e));
values.forEach(e => table.addRow(e));
const image = Charts.newTableChart().setDataTable(table.build()).setDimensions(500, 500).setOption('alternatingRowStyle', false).build().getBlob();
//Opening the specific Slide (Nr. 3)
var slide = SlidesApp.openById("mySlidesID").getSlides()[2];
//Insertion of image
slide.insertImage(image);
}
运行上述脚本时,可以获得以下示例结果。