Discord Bot 读取 Google 表格并在表格中返回值。我想在没有表格格式的消息中返回值 ar CSV
Posted
技术标签:
【中文标题】Discord Bot 读取 Google 表格并在表格中返回值。我想在没有表格格式的消息中返回值 ar CSV【英文标题】:Discord Bot reads Google Sheets and returns values in table. I'd like to return values ar CSV in a message without the table formatting 【发布时间】:2021-06-22 08:49:17 【问题描述】:您好,我有一个正在尝试修改的机器人...
它目前在表格中显示数据,但我希望它在消息中显示为 CSV。
有没有办法做到这一点?
数据目前显示如下:
╔═════════════════════╤═════╤══════════␕╗
> ║ 姓名 │ Grd │ Val1 │ Val ║ ╟──────────────────────┼──────┼───────┼────────╢ ║ tom bob jan tim tom │ a │ 400K │ 469K ║ ╟──────────────────────┼──────┼───────┼────────╢ ║ tom bob jan tim tom │ b │ 392K │ 427K ║ ╟──────────────────────┼──────┼───────┼────────╢ ║ tom bob jan tim tom │ U │ 392K │ 455K ║ ╟──────────────────────┼──────┼───────┼────────╢ ║ tom bob jan tim tom │ U │ 385K │ 394K ║ ╟──────────────────────┼──────┼───────┼────────╢ ║ tom bob jan tim tom │ U │ 366K │ 445K ║ ╟──────────────────────┼──────┼───────┼────────╢ ║ tom bob jan tim tom │ U │ 363K │ 397K ║ ╟──────────────────────┼──────┼───────┼────────╢ ║ tom bob jan tim tom │ a │ 362K │ 433K ║ ╟──────────────────────┼──────┼───────┼────────╢ ║ tom bob jan tim tom │ a │ 362K │ 400K ║ ╟──────────────────────┼──────┼───────┼────────╢ ║ tom bob jan tim tom │ U │ 358K │ 426K ║ ╟──────────────────────┼──────┼───────┼────────╢ ║ tom bob jan tim tom │ U │ 356K │ 429K ║ ╟──────────────────────┼──────┼───────┼────────╢ ║ tom bob jan tim tom │ U │ 354K │ 409K ║ ╚═════════════════════╧═════╧═══════╧════ p>
我希望它显示如下:
姓名、等级、值1、值2 汤姆·鲍勃·詹·蒂姆·汤姆,a,400K,469K 汤姆·鲍勃·扬·蒂姆·汤姆,b,392K,427K 汤姆·鲍勃·扬·蒂姆·汤姆,U,392K,455K tom bob jan tim tom,U,354K,409K
提前致谢
.js 代码如下。
const config = require('../util/globals');
const table = require('table');
const GoogleSpreadsheet = require('google-spreadsheet');
const doc = new GoogleSpreadsheet(config.SHEET_ID);
doc.useServiceAccountAuth(require('../client-secret.json'));
module.exports =
command: 'list',
aliases: ['le'],
dm: false,
permissions: (member) =>
return true;
,
async execute(bot, msg, args)
const abbreviations = fs
.readFileSync('heroes.txt', 'utf-8')
.split(/\r\n|\n/g)
.map((row) => row.split(':')[0].toLowerCase());
if (args.length < 4)
return msg.channel.send('Please at least enter 4 names.');
if (args.slice(0, 5).some((arg) => !abbreviations.includes(arg)))
return msg.channel.send('Unrecognised name(s). Please use all lowercase');
await doc.loadInfo();
const sheet = doc.sheetsByTitle['Output'];
await sheet.loadCells();
sheet.getCellByA1('H3').value = args.slice(0, 5).join(' ');
await sheet.saveUpdatedCells();
const sheet2 = doc.sheetsByTitle['OutputI'];
await sheet2.loadCells();
const data1 = [
[
'Names',
'Grd',
'Value1',
'value2',
],
...[...Array(15).keys()].slice(9).map((row) =>
return [...Array(4).keys()].map(
(column) => sheet2.getCell(row, column).value
);
)
];
const data2 = [
[
'Names',
'Grd',
'Value1',
'value2',
],
...[...Array(20).keys()].slice(15).map((row) =>
return [...Array(4).keys()].map(
(column) => sheet2.getCell(row, column).value
);
)
];
msg.channel.send(
'```' + table(data1).split('\n').slice(0, -2).join('\n') + '```'
);
msg.channel.send(
'```' + table(data2).split('\n').slice(2).join('\n') + '```'
);
;
【问题讨论】:
【参考方案1】:我想通了。连问都觉得有点傻……
msg.channel.send(
'```' + table(data1).split('\n').slice(0, -2).join('\n') + '```'
);
msg.channel.send(
'```' + table(data2).split('\n').slice(2).join('\n') + '```'
只需要将以上几行更改为:
msg.channel.send(
(data1)
);
msg.channel.send(
(data2)
【讨论】:
以上是关于Discord Bot 读取 Google 表格并在表格中返回值。我想在没有表格格式的消息中返回值 ar CSV的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法使用 Discord.py 从 Google 表格(或 MySQL)调用?