本地使用node对Excel表格进行拆分成N个Excel文件或者生成多个表

//npm install node-xlsx
1
var xlsx = require('node-xlsx'); 2 var fs = require('fs'); 3 console.log('读取文件中,请不要进行任何操作...'); 4 var sheets = xlsx.parse('ExcelExport/工作簿1(2)(1).xlsx'); // 要拆分的表格路径** 5 //sheets是一个数组,数组中的每一项对应test.xlsx这个文件里的多个表格 6 let headData = sheets[0].data[0] // 表格头 7 let data = sheets[0].data 8 data.splice(0, 1) 9 let parseSize = 25000 // 每个表数据长度** 10 let parseNumber = data.length / parseSize // 共分几个表 11 console.log('文件数据长度:',data.length); 12 let fileName = 'fileName-' // 生成的文件名** 默认是fileName + i 13 let sheetName = 'Sheet' // 表名** 14 let mainData = [] 15 let tableData = [] 16 console.log('正在生成表格,请不要进行任何操作...'); 17 // 生成多个文件 18 for (let i = 0; i <= parseNumber; i++) { 19 mainData[i] = data.slice((i) * parseSize, (i + 1) * parseSize) 20 mainData[i].unshift(headData) 21 tableData = [{ 22 name: sheetName, 23 data: mainData[i] 24 }] 25 var buffer = xlsx.build(tableData); 26 fs.writeFile('ExcelExport/' + fileName + i + '.xlsx', buffer, function (err) { 27 if (err) 28 throw err; 29 console.log(fileName + i + '.xlsx Write to xls has finished'); 30 }); 31 } 32 // 生成一个文件多表 33 // for (let i = 0; i <= parseNumber; i++) { 34 // mainData[i] = data.slice((i) * parseSize, (i + 1) * parseSize) 35 // mainData[i].unshift(headData) 36 // tableData.push({ 37 // name: sheetName + i, 38 // data: mainData[i] 39 // }) 40 // } 41 // var buffer = xlsx.build(tableData); 42 // fs.writeFile('ExcelExport/fileName.xlsx', buffer, function (err) { 43 // if (err) 44 // throw err; 45 // console.log('Write to xls has finished'); 46 // });

 

posted @ 2022-03-10 14:52  老龟  阅读(318)  评论(0)    收藏  举报