在Google文档中将多个图像对齐

时间:2014-09-16 19:47:57

标签: google-apps-script

经过几个小时的搜索,尝试&错误,我不得不放弃。 我有一个谷歌文档,我填写了谷歌表中的一些数据。 我还创建了一些带有数据的饼图,并希望将2个(或更多)小图表(> 200x200像素)内联在一起。 但我无法做到。 :(

单个图像或图表没有任何问题,但2个或更多似乎相当困难。

这就是为什么我选择这个选项和你的经验作为我的最后选择。

非常感谢您的每一个提示并祝您度过愉快的一天。

迈克尔

“短”代码示例:

第1步:打开Goog​​le表格

var reportDataStorage = SpreadsheetApp.openByUrl('https://docs.google.com/.../edit');
var sheet = reportDataStorage.getSheetByName(...);

第2步:创建表

var daten_besucher_nach_quelle = Charts.newDataTable()
    ...
    daten_besucher_nach_quelle.addRow([sheet.getRange('O'+y).getValue(), sheet.getRange('P'+y).getValue(), sheet.getRange('Q'+y).getValue(); sheet.getRange('R'+y).getValue()]);
    ...
    daten_besucher_nach_quelle.build();

第3步:从表中创建图表

var chart_besucher_nach_quelle = Charts.newPieChart()
    .setDataTable(daten_besucher_nach_quelle)
    .setDimensions(300, 300)
    ...
    .build();

第4步:追加图片

body.appendImage(chart_besucher_nach_quelle.getAs('image/png'));

这够了吗?

1 个答案:

答案 0 :(得分:1)

正如您所注意到的,当您在文档中插入图像时,会自动将新段落添加到文档的正文中。

可以使用image.getParent()方法访问此段落容器。一旦我们得到这个段落,我们就可以在其中添加另一个图像,这个图像将直接并排排列(只要总宽度小于边距之间的最大尺寸)。

尝试这个简单的小代码,并在下面的scren捕获中查看结果:

function importImageTest(){
  var doc = DocumentApp.getActiveDocument();
  var body = doc.getBody();
  var image1 = DriveApp.getFileById("0B3qSFd3iikE3TUFFLWY0ZWJjNzM2LWFiNDYtNGU1OC1hMGNhLTViM2UxNTBlMTE3Nw");// some image in my drive
  var image2 = DriveApp.getFileById("0B3qSFd3iikE3TUFFLWI3Y2JiOTU1LWM0OGYtNDVkMS05ZTRiLTkzNjQ5NDBlZGFkNA");
  var firstImage = body.appendImage(image1).setWidth(150).setHeight(100);// an arbitrary size
  var currentParagraph = firstImage.getParent();// the container of first image
  currentParagraph.asParagraph().appendInlineImage(image2).setWidth(150).setHeight(100);// add the second image to this parent paragraph
  doc.saveAndClose();
}

enter image description here