//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 // });