【问题标题】:Google Scripts: Adding Sheets Table to Google DocGoogle Scripts:将 Sheets 表添加到 Google Doc
【发布时间】:2020-05-19 11:54:32
【问题描述】:

我正在尝试将 Google Sheet 中的一系列数据作为表格插入到 Google Doc 中。我成功了,但是它在 Google Doc 的最后插入了表格,我不知道如何将它插入到文档中间的特定位置。我也无法弄清楚如何让它忽略范围中的空行,以便它不会将表插入到带有空行的文档中。任何帮助表示赞赏!

这是我的代码的 sn-p:

var deviceName = sheet.getRange("C2").getValue();    
var parts = sheet.getRange("B14:C28").getValues();

body.replaceText("%DEVICENAME%", deviceName);
var table = body.appendTable(parts);

table.setColumnWidth(0, 200);
table.setColumnWidth(1, 200);

【问题讨论】:

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


    【解决方案1】:

    你应该选择真实的数据范围并使用 insertTable 而不是 appendtable。

    var deviceName = sheet.getRange("C2").getValue();    
    var parts = sheet.getDataRange().getValues();
    parts = removeBlanks(parts);
    
    body.replaceText("%DEVICENAME%", deviceName);
    var location = 2;
    var table = body.insertTable(location, parts);
    
    table.setColumnWidth(0, 200);
    table.setColumnWidth(1, 200);
    
    function removeBlanks (removeBlanks){
    var result = [];
    for (var i=0; i<removeBlanks.length;i++)
        {
        if (removeBlanks[i][0] == 0) continue;
        result.push(removeBlanks[i]);
        }
    return result;
    }
    

    使用位置值,根据给定的信息,我不确定您真正想要的位置。

    更新:添加了一个函数,如果行的第一个单元格为空,则删除空白行。

    【讨论】:

    • 理想情况下,我想在 Google Doc 中插入表格来代替 %TABLE%。另外,如何将“sheet.getDataRange()”指向 B14:C28?
    • 为什么B14到c:28有空行?
    • 这是一个 2x15 的范围,有足够的空间为我拥有的任何设备输入多达 15 个项目及其部件号(每个设备都有自己的工作表)。有时 15 行会填满,有时则不会。所以我希望它能够查看所有 15 行并自动忽略空行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-11
    • 1970-01-01
    相关资源
    最近更新 更多