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

来源:互联网 发布:ai软件怎么使用 编辑:程序博客网 时间:2024/06/08 00:57

源代码发布在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文件同时拷贝到客户端和服务端工程。

0 0