UNPKG

bia

Version:

a tool for download git repository

112 lines (102 loc) 3.12 kB
/* * @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, }