gpt4 book ai didi

javascript - 如何在 node.js 中设置 xlsx 文件的样式

转载 作者:搜寻专家 更新时间:2023-11-01 00:02:24 55 4
gpt4 key购买 nike

我正在使用我的 node.js Express 应用程序服务器导出由 xlsx.js 生成的文件。我想知道如何在第一行加粗,设置自动宽度和(最终)颜色边框。例如,工作表的第一行如下所示:

var data = [[
{value:"EXTREMELY LONG TITLE 1", bold: 1, autoWidth:true},
{value:"TITLE2"},
{value:"TITLE3"}
]];

我的实际结果是这三个单元格被正确打印和提供。属性 boldautoWidth 被忽略。我怎样才能让它发挥作用?

最佳答案

有很多模块可以做到。但是如果你想控制 xlsx 文件的格式,那么我建议你使用下面的代码。行包含 JSON 数组形式的数据。

var excel = require('node-excel-export');
var styles = {
headerDark: {
fill: {
fgColor: {
rgb: 'FF000000'
}
},
font: {
color: {
rgb: 'FFFFFFFF'
},
sz: 14,
bold: true,
underline: true
}
},
cellPink: {
fill: {
fgColor: {
rgb: 'FFFFCCFF'
}
}
},
cellGreen: {
fill: {
fgColor: {
rgb: 'FF00FF00'
}
}
}
};

var specification = {
"Col1": {
"displayName": 'Col1Name',
"headerStyle": styles.headerDark,
"width": 250
},
"Col2": {
"displayName": 'Col2Name',
"headerStyle": styles.headerDark,
"width": 215
},
"Col3": {
displayName: 'Col3Name',
headerStyle: styles.headerDark,
width: 150
}
}

var report = excel.buildExport(
[{
name: 'Report.xlsx',
specification: specification,
data: rows
}]
);

这可以作为 API 中的响应发送:

res.setHeader('Content-disposition', 'attachment; filename=Report.xlsx');
res.send(report);

或作为电子邮件中的附件:

var smtpTransport = require('nodemailer-smtp-transport');
var transporter = nodemailer.createTransport(smtpTransport({
host: "mail.yourmailman.com"
}));
transporter.sendMail({
from: "abc.gmail.com",
to: toAddr,
subject: 'scheduled reporting',
attachments: [{
'filename': 'Report.xlsx',
'content': new Buffer(report, 'base64')
}]
}, function(error, success) {
if (error) {
logger.error('Error wile sending mail ', error);
return;
} else {
logger.info('Mail sent.. ', success);
return;
}
});

关于javascript - 如何在 node.js 中设置 xlsx 文件的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21335057/

55 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com