js导出Excel表格

2020-03-051690次阅读javascript

借助基于nodejs环境的第三方库 xlsx 实现解析与导出多种数据格式,支持在excel中创建多个Sheet,支持精准插入单元格,并支持.xlsb .xls .csv .txt等多种数据文件导出格式。

安装

npm i xlsx -S

读取数据

let xlsx = require('xlsx');

let workbook = xlsx.readFile('susu.xlsx'); //workbook就是xls文档对象

let sheetNames = workbook.SheetNames; //获取表明

let sheet = workbook.Sheets[sheetNames[0]]; //通过表明得到表对象

var data =xlsx.utils.sheet_to_json(sheet); //通过工具将表对象的数据读出来并转成json

写数据

let xlsx = require('xlsx');
let json = [ 
    {"大标题":null},
    {null:"大标题"},
    {null:"大标题"},
    {null:"大标题"},
    { Name: 'name_01', Age: 21, Address: 'address_01' },
    { Name: 'name_02', Age: 22, Address: 'address_02' },
    { Name: 'name_03', Age: 23, Address: 'address_03' },
    { Name: 'name_04', Age: 24, Address: 'address_04' },
    { Name: 'name_05', Age: 25, Address: 'address_05' }, ];

let ss = xlsx.utils.json_to_sheet(json); //通过工具将json转表对象
let keys = Object.keys(ss).sort(); //排序 [需要注意,必须从A1开始]

let ref = keys[1]+':'+keys[keys.length - 1]; //这个是定义一个字符串 也就是表的范围[A1:C5] 

let workbook = { //定义操作文档
    SheetNames:['nodejs-sheetname'], //定义表明
    Sheets:{
        'nodejs-sheetname':Object.assign({},ss,{'!ref':ref}) //表对象[注意表明]
    },
}

xlsx.writeFile(workbook,"./suzhenwei.xls"); //将数据写入文件

第三方库SheetJS是前端操作Excel以及类似的二维表的最佳选择之一,而js-xlsx是它的社区版本.

参考:

https://github.com/SheetJS/sheetjs

https://aotu.io/notes/2016/04/07/node-excel/index.html

https://www.jianshu.com/p/a1973e58a4b6

https://www.cnblogs.com/liuxianan/p/js-excel.html

 

上一篇: CSS 变量传值给JS  下一篇: JS对象转URL查询字符串  

js导出Excel表格相关文章