bia
Version:
a tool for download git repository
112 lines (102 loc) • 3.12 kB
JavaScript
/*
* @Author: hzxulin@yeah.net
* @Date: 2018-11-21 17:44:34
* @Last Modified by: hzxulin@yeah.net
* @Last Modified time: 2018-11-21 22:03:57
*/
const path = require('path')
const xlsx = require('node-xlsx')
const fse = require('fs-extra')
const question = require('./question')
const GOODS_CONFIG = require('../../config/goods.json')
/**
* 导出excel
* @param {string} _dist 导出的路径
*/
const exportExcel = (_dist) => {
return new Promise((resolve, reject) => {
try {
const data = GOODS_CONFIG.excel
let buffer = xlsx.build([{ name: 'goods-tpl', data: data }])
let dist = path.resolve(_dist, 'goods-tpl.xlsx')
fse.outputFileSync(dist, buffer)
resolve(dist)
} catch (err) {
reject(err)
}
})
}
/**
* 导入excel,读取excel内容
* @param {string} file 导入的excel文件名
*/
const importExcel = (file) => {
return new Promise((resolve, reject) => {
try {
let excel = xlsx.parse(file)
let list = []
excel.forEach((_v) => {
let _data = _v.data
_data.forEach((_y) => {
list.push(_y)
})
})
let _itemidIndex = 0
let _skuidIndex = 0
let _newObj = {}
let _newKeyList = []
let _newList = [['商品id(spuid)', 'E:skuList']]
list.forEach((_v, _i) => {
if (_i == 0) {
_v.forEach((_y, _j) => {
if (/^itemid$/i.test(_y)) {
_itemidIndex = _j
}
if (/^skuid$/i.test(_y)) {
_skuidIndex = _j
}
})
} else {
let _key = _v[_itemidIndex]
let _value = _v[_skuidIndex]
if (_key && _value) {
if (_newObj[_key]) {
_newObj[_key] = _newObj[_key].concat(_value)
} else {
_newKeyList.push(_key)
_newObj[_key] = [].concat(_value)
}
}
}
})
_newKeyList.forEach(_v => {
let _arr = [].concat(_v, _newObj[_v].join(','))
_newList.push(_arr)
})
resolve(_newList)
} catch (err) {
reject(err)
}
})
}
/**
* 生成excel
* @param {array} list 列表信息
*/
const createExcel = (list) => {
return new Promise((resolve, reject) => {
try {
let buffer = xlsx.build([{ name: 'new-goods-tpl', data: list }])
let dist = path.resolve(process.cwd(), 'new-goods-tpl.xlsx')
fse.outputFileSync(dist, buffer)
resolve(dist)
} catch (err) {
reject(err)
}
})
}
module.exports = {
exportExcel,
importExcel,
createExcel,
}