<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>exceljs 使用</title>
</head>
<body>
<button onclick="exporting()">导出</button>
<script>
function exporting() {
// 创建工作簿
const _workbook = new ExcelJS.Workbook()
// 添加工作表
const _sheet1 = _workbook.addWorksheet('sheet1')
// 配置导出表格
_sheet1.addTable({
name: 'MyTestTable',
ref: 'A1', // 表格左上角的位置
headerRow: true,
totalsRow: false,
style: {
theme: 'TableStyleLight1',
// showRowStripes: true,
},
columns: [{
header: '名次',
key: 'sort',
width: 10
},
{
header: '班级',
key: 'class',
width: 20
},
{
header: '姓名',
key: 'name',
width: 20
},
{
header: '得分',
key: 'score',
width: 10
},
],
rows: [{
sort: 1,
class: '前端三班',
name: 'Buer',
score: 99
},
{
sort: 2,
class: '前端一班',
name: 'Jack',
score: 86
},
{
sort: 3,
class: '前端一班',
name: 'Mary',
score: 58
}
],
})
_sheet1.getRow(1).border = {
top: {
style: 'thin'
},
left: {
style: 'thin'
},
bottom: {
style: 'thin'
},
right: {
style: 'thin'
},
}
_sheet1.getRow(1).font = {
bold: true,
}
// 导出表格
_workbook.xlsx.writeBuffer().then((buffer) => {
let _file = new Blob([buffer], {
type: 'application/octet-stream',
})
const blob = new Blob([buffer], {
type: 'arraybuffer'
})
const link = document.createElement('a')
link.href = URL.createObjectURL(blob)
link.download = '测试' + '.xlsx'
link.click()
URL.revokeObjectURL(link.href) // 下载完成释放掉blob对象
})
}
</script>
<script src="https://cdn.jsdelivr.net/npm/exceljs@4.4.0"></script>
</body>
</html>
插件 exceljs 的 addTable() 报错,怎么回事啊?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
关注 参考通义千问和郭老师的小迷弟雅思莫了-编写提供,主要是为了帮助您快速解决问题,如下回答,您可以参考下,如有问题,评论区留言。
在您的代码中,问题出在使用
addTable()
方法时的数据格式不正确。addTable()
需要的rows
属性中的每个对象应该包含与columns
中key
对应的属性,而在您提供的代码里,rows
的数据结构与columns
不匹配。正确的
rows
数据结构应该是:rows: [ { sort: 1, class: '一班', name: '王小虎', score: 90 }, { sort: 2, class: '二班', name: '李小明', score: 95 }, // 更多行... ],
将
rows
数组调整为上述格式后,addTable()
方法应该可以正常工作了。以下是修复后的相关部分代码:// ... rows: [ { sort: 1, class: '一班', name: '王小虎', score: 98 }, { sort: 2, class: '一班', name: '李小明', score: 95 }, { sort: 3, class: '二班', name: '张三', score: 92 }, { sort: 4, class: '二班', name: '李四', score: 96 }, ], // ...
解决 无用评论 打赏 举报
悬赏问题
- ¥15 刚接触VFP,我想知道为什么是这种情况,有人可以看看吗
- ¥15 io.jsonwebtoken.security.Keys
- ¥15 急,ubuntu安装后no caching mode page found等
- ¥15 联想交换机NE2580O/NE1064TO安装SONIC
- ¥15 防火墙的混合模式配置
- ¥15 Ubuntu不小心注销了要怎么恢复啊
- ¥15 win10电脑安装完plcsim advanced4.0运行时为什么会提示找不到虚拟网卡
- ¥15 安装powerbuilder10卡在安装程序正在运行这个页面 没有下一步任何指令
- ¥15 关于mpi的问题:请问遇到这种情况需要怎么解决,出现这个问题后电脑不能进行mpi多核运行只能进行单核运行
- ¥50 微信聊天记录备份到电脑提示成功了,但还是没同步到电脑微信