判断文件夹是否存在
let filePath =path.join(__dirname,'../')+'/download_tmp/'
fs.exists(filePath, function(exists) {
if(!exists){
fs.mkdir(filePath,function (err) {
if(err){
console.log(err)
}
})
}
});
生成excle文件到本地
业务要求:生成excle文件到本地的路径
#安装node-xlsx
npm install node-xlsx --save
data数据
let data =[{
name: 'sheet1',
data: [
[
'ID',
'Name',
'Score'
],
[
'1',
'Michael',
'99'
],
[
'2',
'Jordan',
'98'
]
]
}]
excel.js
var xlsx = require('node-xlsx');
var fs = require('fs')
const util = require('../util/utils.js')
var path=require('path')
const writeGroup = async function(data) {
return new Promise(function (resolve,reject) {
let filePath =path.join(__dirname,'../')+'/download_tmp/'
fs.exists(filePath, function(exists) {
if(!exists){
fs.mkdir(filePath,function (err) {
if(err){
reject(err)
}
})
}
});
resolve([data,filePath])
}).then(function (res) {
var buffer = xlsx.build(res[0])
resolve(buffer)
let fileName= res[1]+util.UUIDGeneratorNode()+'.xlsx'
fs.writeFile(fileName, buffer, function(err) {
if (err) {
console.log("Write failed: " + err);
reject(err)
}
console.log("Write completed.");
resolve(fileName)
});
})
utils.js
var crypto = require('crypto');
const md5 = function(data) {
let hash = crypto.createHash('md5');
return hash.update(data).digest('base64');
}
const UUIDGeneratorNode = () =>
([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
(c ^ (crypto.randomBytes(1)[0] & (15 >> (c / 4)))).toString(16)
);
module.exports = {
md5: md5,
UUIDGeneratorNode:UUIDGeneratorNode
}