【问题标题】:How to update spreadsheet values from a variable?如何从变量更新电子表格值?
【发布时间】:2021-01-19 08:29:16
【问题描述】:

我创建了一个带有三个参数的函数(客户端、我在表中查找的值、要更新的新值),但直到知道我不知道如何使用确定的价值。

到目前为止,我成功地在表中查找了值,但我无法使用函数参数中的值更新最终单元格。这样做的方法是什么?

async function modif(client, id1, id2)
{   
    const gsapi = google.sheets({version:'v4',auth: client });

    for (i = 0; i < 50; i++) 
    {

        const opt1 = {spreadsheetId: 'XXX', range: 'Sheet1!A' + (3+i)};
        let data1 = await gsapi.spreadsheets.values.get(opt1);

        if (parseInt(id1) === parseInt(data1.data.values))
        {                                   
            const opt2 = {
            spreadsheetId: 'xxx', 
            range: 'Sheet1!B' + (3+i), 
            valueInputOption: 'USER_ENTERED', 
            resource:{values : id2}
            };

            let res = await gsapi.spreadsheets.values.update(opt2);
        console.log("modifications OK");
            return;
        }
    }
}

我应该有一个更新的单元格,但是我收到一条错误消息:“data.values”中的值无效。错误出现在资源行:{values : id2}

有谁知道如何解决这个小错误(我猜),我昨天在这个错误上花了 2 个小时却无法解决它:(

非常感谢您的帮助,

【问题讨论】:

  • 在我看来像是来自 google.sheets 而不是 javascript 的错误。我将首先在您的函数开始时注销您的参数,以确保您尝试放入电子表格的内容是有效数据console.log('client', client, 'id1', id1, 'id2', id2)
  • 我尝试将 id2 替换为“Test”,但不幸的是它也不起作用 :( 返回错误是:错误:“data.values”中的值无效(type.googleapis.com/ google.protobuf.ListValue), "test"。你有什么其他的想法可以解决这个问题吗?

标签: javascript google-api google-api-js-client


【解决方案1】:

我终于发现了问题所在...当我查看这里的文档时:https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values,我发现参数“values”是一个数组数组...

因此,我只需要将语法从:resource:{values : id2} 更改为:resource:{values : [[id2]]}

干杯,

【讨论】:

    猜你喜欢
    • 2021-07-02
    • 1970-01-01
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 2013-08-22
    相关资源
    最近更新 更多