Google Sheets API nodejs - получить индекс ячейки, содержащей строку - PullRequest
0 голосов
/ 02 августа 2020

Прежде всего, как мне получить доступ к содержимому ячейки? Я создаю бота Discord, который отображает статистику различных юнитов в игре, используя значения таблицы publi c игры: https://docs.google.com/spreadsheets/d/1WqogbXoOThLkt2kL3QJbFGT3Kc_x_XwwmK2FCJdrnvQ/edit#gid = 1714057504

Таким образом, пользователь вводит имя мини (юнита), и мне нужно найти ячейку, содержащую имя юнита, а затем получить значения его статистики, которые будут в той же строке.

Ответы [ 2 ]

1 голос
/ 03 августа 2020

@ Raserhin предложил опубликовать, как я решил свою проблему, и вот оно.

Я использовал spreadsheets.values.get() для получения данных для листов. data.values, по-видимому, представляет собой 2D-массив, поэтому теперь все упрощается, поэтому я могу последовать предложению @ Query. Я повторил для каждого из 3 листов (так как в игре 3 фракции юнитов). Я помещаю все 2D-массивы в 3D-массив. Затем, когда пользователь вводит имя юнита, есть внешний для l oop, который повторяется 3 раза для каждой фракции, а затем вложенный в него другой для l oop для итерации для каждого имени юнита, каждый раз проверяя, если имя соответствует вводу пользователя.

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];

    ...

0 голосов
/ 02 августа 2020
• 1000 * и прерываются при обнаружении совпадения.

Существуют и другие решения, такие как использование формулы с функцией ПРОСМОТР, но для этого потребуются разрешения на запись в документ.

...