【问题标题】:Can I create google sheet tabs and also paste the format of a tab to them?我可以创建谷歌工作表标签并将标签格式粘贴到它们吗?
【发布时间】:2020-03-11 14:24:31
【问题描述】:

我有创建标签的代码和复制格式的代码,但是,我正在寻找这两者的集成。我想在给定特定列表的情况下创建选项卡,然后将选项卡的格式(称为模板)粘贴到新创建的选项卡中。

这是创建标签的代码:

function createTabs() {
var ss = SpreadsheetApp.getActive()
ss.getSheetByName('Campaigns').getRange('A2:A40').getValues().filter(String)
    .forEach(function (sn) {
        if (!ss.getSheetByName(sn[0])) {
            ss.insertSheet(sn[0], ss.getSheets().length);}})}

这是我找到的粘贴格式代码:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var source = ss.getSheets()[0];

var range = source.getRange("B2:D4");

// This copies the formatting in B2:D4 in the source sheet to
// D4:F6 in the sheet with gridId 1555299895. Note that you can get the gridId
// of a sheet by calling sheet.getSheetId() or range.getGridId().
range.copyFormatToRange(1555299895, 4, 6, 4, 6);

【问题讨论】:

    标签: google-apps-script google-sheets format google-sheets-api


    【解决方案1】:

    您似乎正在使用insertSheet(sheetName, sheetIndex) 来插入新的“标签”。您可以改用insertSheet(sheetName, sheetIndex, options) 并使用{template: templateSheet} 作为选项设置模板。所以你只需要你的代码的前半部分,编辑如下。

    function createTabs() {
    var ss = SpreadsheetApp.getActive()
    ss.getSheetByName('Campaigns').getRange('A2:A40').getValues().filter(String)
        .forEach(function (sn) {
            if (!ss.getSheetByName(sn[0])) {
                ss.insertSheet(sn[0], ss.getSheets().length, {template: ss.getSheetByName('TEMPLATE')}})}
    

    【讨论】:

    • 如果String 变量是一个有效的回调函数,这个答案就会成功。
    • 非常感谢你们!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多