您的位置:首页 > 运维架构 > Shell

系列文章之四 用shell结合node.js批量转换excel工具(2)

2016-07-21 23:55 609 查看
源代码发布在github上:https://github.com/linyouhappy/kongkongxiyou

convertData.command就是excel转换成json工具。现在对其源代码进行解释

#取当前脚本所在的文件夹的完整路径
CURRENT_DIR=`dirname $0`
#cd到exceldata目录,xx/exceldata就是excel表配置所在位置。策划配置游戏所有数值在这里配置,
cd $CURRENT_DIR/exceldata
#exceldata目录下有一个node.js程序,转换excel表格
$CURRENT_DIR/exceldata/node app


整个原理就是利用xls-to-json库取出数值,再转行成json。

由于xls-to-json在高级版本会出错。故在特意为它准备一个低版本的node程序。xx/exceldata/node

这个node程序专用于这个地方。

转换node工具的入口是xx/exceldata/app.js

var xls_json = require('xls-to-json');
var fs = require('fs');

//定义excel表格的目录
var dataDir=__dirname+"/excelData/";
//客户端工程的json配置文件路径,完整路径
var publicDir="xx/cocosjs/src/config/";
//服务端工程的json配置文件路径,完整路径
var serverPublicDir="xx/lordofpomelo/game-server/config/data/";
var files = fs.readdirSync(dataDir);
for(var key in files)
{
var file=files[key];
//判断是否为xls文件
var searchIndex=file.lastIndexOf(".xls");
if(searchIndex>0 && file.length-4===searchIndex)
{
var fileName=file.substring(0,searchIndex);
var outputName=publicDir+fileName+".js";
var serverOutputName=serverPublicDir+fileName+".json";
var inputName=dataDir+file;

xls_json({
input: inputName,
dataName:fileName,
output:outputName,
soutput:serverOutputName
}, function(err, result) {
if(err) {
console.error(err);
} else {
console.log(result);
}
});
}
}


鼠标点击convertData.command文件,就可以自动把excel表转换的json文件同时拷贝到客户端和服务端工程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell excel node.js