【问题标题】:Create a new sheet from on other sheet and copy his style (nodejs, googleSheets)从另一个工作表创建一个新工作表并复制他的样式(node js,google Sheets)
【发布时间】:2021-08-13 10:59:06
【问题描述】:

我正在尝试从另一个“模板”工作表创建一个新工作表。但是我找不到从模板中复制样式的正确方法。它只是返回没有样式的工作表副本(没有背景颜色,没有文本字体等......)

你能帮帮我吗?

const readRows = async ({ range }) => {
    const spreadsheetId = '1';
    return await g.sheets.spreadsheets.values.get({
        spreadsheetId,
        range,
        majorDimension: 'ROWS',
    });
};

const updateSheet = async ({ spreadsheetId, range, dimension, values, valueInputOption } ) => {
    const result = await g.sheets.spreadsheets.values.update({
        spreadsheetId,
        range,
        valueInputOption: valueInputOption || SheetInputMode.RAW,
        requestBody: {
            majorDimension: dimension || SheetDimension.ROWS,
            range,
            values,
        },
    });
};

const createNewSheet = async (req, res) => {
    const spreadsheetId = '1';
    const newSheetName = 'test';
    const createNewSheet = await g.sheets.spreadsheets.batchUpdate({
        spreadsheetId,
        requestBody: {
            requests: [
                {
                    addSheet: {
                        properties: {
                            title: newSheetName,
                        },
                    },
                },
            ],
        },
    });

    if (createNewSheet !== null) {
        const template = await readRows({ range: 'template' });

        const updateNewSheet = await updateSheet({
            spreadsheetId,
            range: newSheetName,
            dimension: SheetDimension.COLUMNS,
            values: template.data.values as any,
            valueInputOption: SheetInputMode.RAW,
        });

        res.send(success: "success");
    }
}

【问题讨论】:

    标签: node.js google-sheets google-sheets-api


    【解决方案1】:

    你可以试试spreadsheets.sheets.copyTo

    示例代码见下面的参考链接:

    const request = {
      // The ID of the spreadsheet containing the sheet to copy.
      spreadsheetId: 'sourceSsID', 
      // gid in the sheet link
      sheetId: 0,  
      resource: {
        // The ID of the spreadsheet to copy the sheet to.
        destinationSpreadsheetId: 'destinationSsID',  
      },
      auth: authClient,
    };
    
    try {
      const response = (await sheets.spreadsheets.sheets.copyTo(request)).data;
    }
    

    示例来源:

    样本输出:

    参考:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-09
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      • 2022-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多