内容简介:我们在用Excel表格的时候经常需要合并数据,比如统计整个年级的数据的时候,需要合并每个班成绩的时候,这就需要一个快速将很多张数据类型相同表合并的组件我们将文件放到excle里,而合并的结果放到result里
简述需求
我们在用Excel表格的时候经常需要合并数据,比如统计整个年级的数据的时候,需要合并每个班成绩的时候,这就需要一个快速将很多张数据类型相同表合并的组件
需要的配置
- 现在Node.js能够很好进行文件的读写操作,只要能读写就能合并
- 社区已经有了封装好的一些插件比如node-xlsx,cnpm install就能用
- 引入Node本来的文件读写工具
const xlsx = require('node-xlsx') const fs = require('fs')
获取文件决定路径,定义合并数组
我们将文件放到excle里,而合并的结果放到result里
const _file = `${__dirname}/excel/` const _output = `${__dirname}/result/` let dataList = [ { name: '提交成绩',//你sheet的名字 data: [] }]
读出数据
fs.readdir(_file, function(err, files) {}里可以将所有_file读出来放到files数组里
解析数据
let excelData = xlsx.parse(`${_file}${item}`)//拼接的绝对路径 console.log(excelData) console.log(excelData[0].data)
提取数据进行拼接
files.forEach((item, index) => { try { console.log(`开始合并:${item}`) let excelData = xlsx.parse(`${_file}${item}`) if (excelData) { if (dataList[0].data.length > 0) { excelData[0].data.splice(0, 1) } dataList[0].data = dataList[0].data.concat(excelData[0].data) } } catch (e) { console.log('excel表格内部字段不一致,请检查后再合并。') } })
写入新的文件
var buffer = xlsx.build(dataList) fs.writeFile(`${_output}resut.${new Date().getTime()}.xlsx`, buffer, function (err) { if (err) { throw err } console.log('\x1B[33m%s\x1b[0m', `完成合并:${_output}resut.${new Date().getTime()}.xlsx`) })
完整代码
const xlsx = require('node-xlsx') const fs = require('fs') // excel文件夹路径(把要合并的文件放在excel文件夹内) const _file = `${__dirname}/excel/` const _output = `${__dirname}/result/` let dataList = [ { name: '提交成绩', data: [] }] init() function init () { fs.readdir(_file, function(err, files) { console.log(files) if (err) { throw err } files.forEach((item, index) => { try { console.log(`开始合并:${item}`) let excelData = xlsx.parse(`${_file}${item}`) if (excelData) { if (dataList[0].data.length > 0) { excelData[0].data.splice(0, 1) } dataList[0].data = dataList[0].data.concat(excelData[0].data) } } catch (e) { console.log('excel表格内部字段不一致,请检查后再合并。') } }) var buffer = xlsx.build(dataList) fs.writeFile(`${_output}resut.${new Date().getTime()}.xlsx`, buffer, function (err) { if (err) { throw err } console.log('\x1B[33m%s\x1b[0m', `完成合并:${_output}resut.${new Date().getTime()}.xlsx`) }) }) }
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Serverless 组件开发尝试:全局变量组件和单独部署组件
- UI组件库从1到N开发心得-组件篇
- PJBreedsViewController 组件开发总结
- PJPickerView 组件开发总结
- Vue组件开发
- Laravel 后台开发常用组件
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Nginx高性能Web服务器详解
苗泽 / 电子工业出版社 / 2013-10 / 59.00元
《Nginx高性能Web服务器详解》全面介绍了当前Internet上流行的一款开放源代码的Web服务器——Nginx。全书一共分为四大部分,分别从入门、功能、实现和应用等四个方面对Nginx服务器的知识进行完整阐述,从而满足广大读者在应用Nginx服务器时的普遍性需求。同时也深入剖析了Nginx服务器的工作原理和实现技术,对其中使用到的数据结构和方法进行了详细阐述,并且结合实际的应用情况给出了多个......一起来看看 《Nginx高性能Web服务器详解》 这本书的介绍吧!
JS 压缩/解压工具
在线压缩/解压 JS 代码
SHA 加密
SHA 加密工具