You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在同一个函数中读写Google Sheets单元格?

实现Google Sheets写入H1并读取H2的脚本解析

你的脚本已经正确实现了向H1写入内容并读取H2单元格的核心逻辑,下面针对脚本细节做几点说明:

  • 写入H1的逻辑无误:通过spreadsheets.values.update接口,指定'BOTDATA'!H1范围写入用户输入的SteamID,USER_ENTERED的输入格式能保证内容按用户输入的样式解析。
  • 读取H2的逻辑正确:使用spreadsheets.values.get接口获取'BOTDATA'!H2的值,通过obj.data.values[0][0]提取单元格内容,但要注意如果H2为空,values会是undefined,建议增加空值判断避免报错。
  • 延时await setTimeout(1000)是为了确保写入操作完成后再读取,避免因网络延迟导致读取旧值,这个处理合理,若使用Google Sheets官方客户端,update本身是异步确认的,但保留延时能降低风险。

优化后的脚本(增加空值判断)

const { setTimeout } = require("timers/promises"); // 按需添加延时

async function blackList() { 
    const sheets = google.sheets({ version: "v4", auth });
    const spreadsheetId = "myidhere";
  
    const sheetName = "BOTDATA";
    const cells = ["H1"];
    const valueInputOption = "USER_ENTERED";
    const userInput = interaction.options.get('steamid').value;
    
    // 写入H1单元格
    await sheets.spreadsheets.values.update({
      spreadsheetId,
      range: `'${sheetName}'!${cells[0]}`,
      resource: { values: [[userInput]] },
      valueInputOption,
    });
    
    await setTimeout(1000); // 按需设置延时

    // 读取H2单元格
    const obj = await sheets.spreadsheets.values.get({
        spreadsheetId,
        range: `'${sheetName}'!H2`
    });
    
    // 增加空值判断,避免H2为空时报错
    const value = obj.data.values ? obj.data.values[0][0] : null;
    // console.log(value);
    return value;
}

})()

注意事项

  • 确保auth变量已正确初始化,且拥有Google Sheets的读写权限。
  • 若H2单元格可能为空,必须添加空值判断,否则会抛出Cannot read properties of undefined (reading '0')的错误。

内容的提问来源于stack exchange,提问作者famq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 06:42:42