关于vue3:sheetJs导出excel

这里以vue+element为例:
我的项目遇到这样一个需要,将下列表格导出为excel:

1.装置xlxs依赖

npm i xlsx

次要的导出excel的办法有aoa_to_sheetjson_to_sheet两种,这里我次要介绍下后者,次要导出流程如下:

const XLSX = require("xlsx")
var wb = XLSX.utils.book_new()
//arr就是咱们所导出的数据
let fdXslxws = XLSX.utils.json_to_sheet(arr)
XLSX.utils.book_append_sheet(wb, fdXslxws, 'sheet1')
XLSX.writeFile(wb, "测试.xlsx")

2.json_to_sheet的应用,简略来说就是json数据导出excel数据
依据官网所说,最初所须要的数据就是这个格局,即为上文所说的arr

[
{
"日期": "2016-05-02",
"姓名": "王小虎",
"地址": "北京"
},
{
"日期": "2016-05-02",
"姓名": "张三",
"地址": "北京"
},
{
"日期": "2016-05-02",
"姓名": "李四",
"地址": "上海"
}
]

故,只须要将咱们data中的table数据转换为此类格局即可。
残缺代码如下:

<script>
const XLSX = require("xlsx")
export default {
    data() {
        return {
            tableData: [{
                date: '2016-05-02',
                name: '王小虎',
                address: '上海市普陀区金沙江路 1518 弄'
            }, {
                date: '2016-05-04',
                name: '王小虎',
                address: '上海市普陀区金沙江路 1517 弄'
            }, {
                date: '2016-05-01',
                name: '王小虎',
                address: '上海市普陀区金沙江路 1519 弄'
            }],
            tableHeader: [
                {
                    title: '日期',
                    map: 'date'
                },
                {
                    title: '姓名',
                    map: 'name'
                },
                {
                    title: '地址',
                    map: 'address'
                },
            ]
        }
    },
    methods: {
        exportExcel() {
            var wb = XLSX.utils.book_new()
            let arr = []
            let newHeaderObj = {}
            this.tableHeader.map(item => {
                newHeaderObj[item.map] = item.title
            })
            this.tableData.map((el, idx) => {
                let obj = {}
                for (let x in newHeaderObj) {
                     obj[newHeaderObj[x]] = el[x]
                }
                arr.push(obj)
            })
            let fdXslxws = XLSX.utils.json_to_sheet(arr)
            XLSX.utils.book_append_sheet(wb, fdXslxws, 'sheet1')
            XLSX.writeFile(wb, "测试.xlsx")
        }
    }
}
</script>

也有按需合并单元格等诸多弱小性能,感兴趣的能够去官网看下!
以下附上xlsx依赖地址和中文文档

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理