我要用Google文档中包含该图像的表替换选定的图像。当我运行代码时,没有表格插入到Google文档中。
function insertImage(ID, caption) {
var selection = DocumentApp.getActiveDocument().getSelection();
if (selection) {
var elements = selection.getSelectedElements();
var tImg = elements[0].getElement();
var cells = [
[tImg.asInlineImage(), ID+': '+caption]
];
var parentElement = tImg.getParent();
parentElement.insertTable(parentElement.getChildIndex(tImg) + 1, cells)
tImg.removeFromParent();
}
}
不会删除图像,也不会添加表格。谢谢!
答案 0 :(得分:0)
如果我对您的问题的理解是正确的,那么如何修改?
insertTable()
的方法是类主体的方法。getSelectedElements()
已过时。因此,请使用getRangeElements()
。当以上几点反映到脚本中时,它如下所示。
function insertImage(ID, caption) {
// ID = "sample ID"; // for sample
// caption = "sample caption"; // for sample
var doc = DocumentApp.getActiveDocument(); // Added
var body = doc.getBody(); // Added
var selection = doc.getSelection(); // Modified
if (selection) {
var elements = selection.getRangeElements(); // Modified
var e = elements[0].getElement(); // Modified
if (e.getType() == DocumentApp.ElementType.INLINE_IMAGE) { // Added
var tImg = e.asInlineImage(); // Modified
var parentElement = tImg.getParent();
var cells = [["", ID + ': ' + caption]]; // Modified
var table = body.insertTable(body.getChildIndex(parentElement), cells); // Modified
var cell = table.getCell(0, 0); // Added
cell.insertImage(0, tImg.getBlob()).getParent().asParagraph().getNextSibling().removeFromParent(); // Added
tImg.getParent().asParagraph().removeFromParent(); // Modified
}
}
}
输入:
输出:
如果这不是您想要的,请告诉我。我想修改它。