Недавно я пытался преобразовать часть своей базы данных в таблицу Google, чтобы пользователи могли отправлять данные с помощью формы Google, и они автоматически помещаются в лист, после чего я могу извлечь данные с помощью пакета npm гугл-таблица. Но я хочу иметь возможность поместить эти данные в массив для использования в моем приложении node.js.
Приведенный ниже код в основном просто получает информацию из документа и отображает ее для меня заранее (по крайней мере, столбцы / строки, которые я хочу)
function factdoc(fact) {
msg.channel.send(`Fact: ${fact.facts}`);
msg.channel.send(`------------------------`);
}
async function accessSpreadsheet() {
const doc = new GoogleSpreadsheet('1QdEn0w02w-qcxHl5dLRn5Ld0IolbgFM9IV2TY2TPTSQ');
await promisify(doc.useServiceAccountAuth)(creds);
const info = await promisify(doc.getInfo)();
const sheet = info.worksheets[0];
const rows = await promisify(sheet.getRows)({
offset: 1
});
rows.forEach(row => {
factdoc(row);
})
}
if (msg.content == prefix + 'test') {
accessSpreadsheet();
msg.delete();
}
вывод выглядит следующим образом
и таблица Google выглядит так
Итак, это чтение с листа Google нормально. Однако, прочитав документацию и просмотрев пару руководств, я не знаю, как продолжить.
Я хочу взять эту информацию и сохранить ее в виде массива, чтобы, если бы я набрал msg.channel.send(fact[0]);
например, тогда будет отображаться test0
. Или, если бы я сделал случайный факт, я мог бы сделать что-то вроде этого (очевидно, не совсем так)
if (msg.content == prefix + "randomfact"){
randomfact = Math.floor(Math.random() * sheet.rowCount);
msg.channel.send(fact[randomfact]);
}
, тогда он посчитал бы строки, что позволило мне поместить его в math.random
и позволяя мне вывести случайный факт из списка. Я возился с этим пару часов и продолжаю нарушать свой код. Я не уверен, как реализовать функции из документации, поскольку я никогда раньше с этим не работал.