如何使用菜单项/选项将活动文本从谷歌文档复制到电子表格

时间:2018-01-23 10:23:43

标签: google-apps-script google-sheets google-docs

我是谷歌应用程序的新手,我知道已经提出了类似的问题,但他们只是解决了类似的问题。我希望你能帮助我。

我想通过按钮将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);
}

提前感谢所有人投入时间思考我的问题。

1 个答案:

答案 0 :(得分:0)

您可以尝试此代码

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);
    }


}

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

如果有效,请接受/推荐此答案,以便其他人也可以从中获得帮助。