下载exceljs地址
1、git:https://github.com/exceljs/exceljs.git
2、码云地址:https://gitee.com/mirrors/exceljs
文档很全面只要按照步骤就没有问题
1、index.js 内容
const ExcelJS = require(‘exceljs’);
async function ddd() {
console.log(111)
const wb = new ExcelJS.Workbook();
const Sheet1 = wb.addWorksheet(‘Sheet1’);
const Sheet2 = wb.addWorksheet(‘Sheet2’);
const test = wb.addWorksheet(‘test’);
//表2 性别
Sheet2.columns = [{
header: '性别',
key: 'sex',
width: 20
},
{
header: '性别值',
key: 'sexVal',
width: 20
},
];
const Sheet2_data = [{
sex: '女',
sexVal: '0',
}, {
sex: '男',
sexVal: '1',
}];
Sheet2.addRows(Sheet2_data);
// 添加性别管理器
const _data = Sheet2_data.reduce((p, c) => {
if (!p.has(c.sex)) {
p.set(c.sex, [c.sexVal]);
} else {
const arr = p.get(c.sex);
arr.push(c.sexVal);
}
return p;
}, new Map());
// console.log(_data)
const sexs = Array.from(_data.keys());
const sexVals = Array.from(_data.values());
test.addRows(sexVals);
test.eachRow(function(row, i) {
const sex = sexs[i - 1];
// console.log(sex, i);
row.eachCell(function(cell, colNumber) {
cell.addName(sex);
});
});
Sheet1.columns = [{
header: '编号',
key: 'no',
width: 20
}, // A1
{
header: '姓名',
key: 'name',
width: 20
}, // B2
{
header: '性别',
key: 'sex',
width: 20
}, // C3
{
header: '性别值',
key: 'sexVal',
width: 20
}, // D4
];
const Sheet1_data = [{
no: '1',
name: '小红',
sex: '女',
sexVal: '0',
}]
Sheet1.addRows(Sheet1_data);
///
new Array(1000).fill(0).forEach((_, idx) => {
const row = idx + 2;
// 渲染部门下拉框
Sheet1.getCell(row, 3).dataValidation = {
type: 'list',
formulae: [`=Sheet2!$A$2:$A${Sheet2_data.length+1}`]
};
// 使用indirect函数添加引用, 渲染性别值
Sheet1.getCell(row, 4).dataValidation = {
type: 'list',
formulae: [`=INDIRECT(C${row})`]
};
});
// await wb.xlsx.writeFile('C:/Users/Administrator/Desktop/dd/模板列表.xlsx');
await wb.xlsx.writeFile('./dd.xlsx');
console.log(111)
return;
}
ddd()
2、运行 node index.js
今天的文章使用exceljs 导出表格有下拉框(nodejs)分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/25165.html