安装
npm install xlsx-js-style --save
使用
- 引入
import XLSX from 'xlsx-js-style'
// 1.创建一个工作簿
const wb = XLSX.utils.book_new()
// 表格标题
// 这里设置标题是怕数据没有,返回空表,连标题都没有
// 这里的权重,没有数据tableData里的高,果如tableData中没有和标题一一对应,导出的表格也会展示
// 比如:arrHeader = [a,b] 而,tableData = [{a:1,b:2,c:3}];那么表格会多一个c的列
const arrHeader = [a,b]
// 创建表格数据
const tableData = [{a:1,b:2},{a:1,b:2}]
// 2.创建sheet对象
const ws = XLSX.utils.json_to_sheet(tableData,
{
header: arrHeader
}
)
// 设置每个列宽度,有多少个,就需要添加多少
ws['!cols'] = [
{
wpx: 100
},
{
wpx: 100
}
]
// 设置表格样式
for (const i in ws) {
if (!['!ref', '!merges', '!cols'].includes(i)) {
ws[i].s = {
border: {
top: { style: 'thin' },
bottom: { style: 'thin' },
left: { style: 'thin' },
right: { style: 'thin' }
},
font: {
sz: 9
},
// 内容居中
alignment: {
horizontal: 'center',
vertical: 'center',
wrap_text: true
}
}
// 判断,标题加粗,标题只有1行,大于2则不加粗
const regex = /\d+/g
if (!(i.match(regex)[0] > 1)) {
ws[i].s = {
border: {
top: { style: 'thin' },
bottom: { style: 'thin' },
left: { style: 'thin' },
right: { style: 'thin' }
},
// 内容居中
alignment: {
horizontal: 'center',
vertical: 'center',
wrap_text: true
},
font: {
sz: 9,
bold: true,
color: {
rgb: '000000' // 十六进制,不带#
}
},
fill: {
fgColor: { rgb: 'ECF5FF' } // 填充颜色
}
}
}
}
}
// 3.将 sheet 对象插入工作簿
XLSX.utils.book_append_sheet(wb, ws, 'sheetName')
// 设置导出名称
const {staffName, name} = this.swichtype
// 4.下载 excel
XLSX.writeFile(wb, `导出表格.xlsx`)
标签:xlsx,插件,const,表格,导出,style,ws,thin
From: https://www.cnblogs.com/tlf01/p/18424328