如何使用菜单 item/option 将活动文本从 google 文档复制到电子表格

How to copy active text from google docs to spreadsheet with menu item/option

我是 google 应用程序的新手,我知道有人问过类似的问题,但他们只解决了类似的问题。我希望你能帮助我。

我想通过按钮将活动文本从 google 文档复制到给定的电子表格。我对电子表格到电子表格做了类似的操作,但我在文档到电子表格上失败了。

function onOpen(e) {
    DocumentApp.getUi()
        .createMenu('Copy active Range.')
        .addItem('Copy Button', 'Copy')
        .addToUi();
}

function Copy() {
    var ss = DocumentApp.getActiveDocument();
    var selection = ss.getSelection();

    var tss = SpreadsheetApp.openById("xxx");
    var ts = tss.getSheetByName("name");

    trange = ts.getRange("B6:B6")
    selection.copyto(trange);
}

提前感谢大家花时间思考我的问题。

你可以试试这个代码

var SPREADSHEET_ID = "YYYY"; // = assign your spreadsheet id to this variable
var SHEET_NAME = "XXXXX"; // = assign your sheet name to this variable

function onOpen(e) {
    DocumentApp.getUi()
        .createMenu('Copy active Range.')
        .addItem('Copy Button', 'Copy')
        .addToUi();
}

function Copy() {
    var ss = DocumentApp.getActiveDocument();
    var selection = ss.getSelection();
    var result = "";

    //Proceed only if something is selected, otherwise selection will be null
    if (selection) {

        var elements = selection.getRangeElements();
        for (var i = 0; i < elements.length; i++) {
            var element = elements[i];

            // Only modify elements that can be edited as text; skip images and other non-text elements.
            if (element.getElement().editAsText) {
                result += element.getElement().asText().getText();
            }
        }

        var tss = SpreadsheetApp.openById(SPREADSHEET_ID);
        var ts = tss.getSheetByName(SHEET_NAME);

        trange = ts.getRange(2, 6); //I think, you can use B6 also
        trange.setValue(result);
    }


}

这不是经过测试的代码,如果弹出任何错误,请告诉我。我很乐意一起调试。

如果有效,accepts/upvote这个答案,这样其他人也可以从中得到帮助。