嗨,我有个机器人,我想修改一下.
它当前在表中显示数据,但我希望它在消息中以CSV的形式显示。
有办法这样做吗?
当前显示的数据如下:
╔═════════════════════╤═════╤═══════╤═══════╗
Val1║名称│Grd││Val║
╟─────────────────────┼─────┼───────┼───────╢
║汤姆鲍勃简蒂姆汤姆││400 K│469 K║
╟─────────────────────┼─────┼───────┼───────╢
║汤姆鲍勃提姆汤姆│b│392K│427 K║
╟─────────────────────┼─────┼───────┼───────╢
║汤姆鲍勃简提姆汤姆│U│392K│455 k║
╟─────────────────────┼─────┼───────┼───────╢
║汤姆鲍勃简提姆汤姆│U│385 K│394 k║
╟─────────────────────┼─────┼───────┼───────╢
║汤姆鲍勃简提姆汤姆│U│366 K│445 k║
╟─────────────────────┼─────┼───────┼───────╢
║汤姆鲍勃简提姆汤姆│U│363 K│397 K║
╟─────────────────────┼─────┼───────┼───────╢
║汤姆鲍勃简蒂姆汤姆││362 k│433 k║
╟─────────────────────┼─────┼───────┼───────╢
║tom bob jan tim tom│a│362 k│400 K║
╟─────────────────────┼─────┼───────┼───────╢
║汤姆鲍勃简提姆汤姆│U│358 K│426 K║
╟─────────────────────┼─────┼───────┼───────╢
║汤姆鲍勃简提姆汤姆│U│356 K│429 K║
╟─────────────────────┼─────┼───────┼───────╢
║汤姆鲍勃简提姆汤姆│U│354 K│409K║
╚═════════════════════╧═════╧═══════╧═══════╝
我想让它像这样显示:
姓名,年级,Value1,Value2
汤姆·鲍勃·扬·蒂姆·汤姆,a,400 K,469 K
汤姆鲍勃简蒂姆汤姆,b,392 K,427 K
汤姆·鲍勃·扬·蒂姆·汤姆,U,392 K,455 K
汤姆·鲍勃·扬·蒂姆·汤姆,U,354 K,409 K
提前感谢
.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') + '```'
);
}
};发布于 2021-03-25 15:45:04
我想出来了。有点蠢,甚至问.
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)https://stackoverflow.com/questions/66801441
复制相似问题