首页 > 解决方案 > Google Sheets API nodejs - 获取包含字符串的单元格的索引

问题描述

首先,我究竟如何访问单元格的内容?我正在创建一个不和谐的机器人,它使用游戏的公共电子表格值显示游戏中不同单位的统计数据:https ://docs.google.com/spreadsheets/d/1WqogbXoOThLkt2kL3QJbFGT3Kc_x_XwwmK2FCJdrnvQ/edit#gid=1714057504

因此,用户将输入迷你(单位)的名称,我需要找到包含单位名称的单元格,然后获取其统计信息的值,这将在同一行上。

标签: node.jsgoogle-sheets-api

解决方案


@Raserhin 建议我发布我是如何解决我的问题的,所以就在这里。

我曾经spreadsheets.values.get()获取工作表的数据。data.values显然是一个二维数组,所以现在一切都很容易,所以我可以遵循@Query 的建议。我对 3 张纸中的每一张都重复了一遍(因为游戏中有 3 个单位派系)。我将所有 2D 数组放入 3D 数组中。然后当用户输入单位名称时,有一个外部for循环,每个派系迭代3次,然后嵌套在其中的另一个for循环对每个单位名称进行迭代,每次检查名称是否与用户输入匹配.

const {google} = require("googleapis");
const sheets = google.sheets({version: "v4", auth: APIKey});

async function gsrun(cl){
    const opt = {
        spreadsheetId: spreadsheetId,
        range: 'Republic Minis'
    };
          
    let repData = await sheets.spreadsheets.values.get(opt);
    let repDataArray = repData.data.values;
    
    opt.range = 'Dominion Minis';
    let domData = await sheets.spreadsheets.values.get(opt);
    let domDataArray = domData.data.values;

    opt.range = 'Empire Minis';
    let empData = await sheets.spreadsheets.values.get(opt);
    let empDataArray = empData.data.values;

    var miniArray = [repDataArray, domDataArray, empDataArray];

    ...


推荐阅读