Node解决简单重复问题系列之Excel内容的获取


Posted in Javascript onJanuary 02, 2018

始因 -- 懒

最近项目中,经常用到多语言翻译,而iOS的多语言适配,设计给出的多语言都是指定的翻译制作成的一系列表格,基本都要一点一点复制到对应的语言文件中,如此反复,尤其是需求量叠加,对应翻译较多时,一条一条复制粘贴很是费时费力。并且多语言出错并不容易排查,无形中增加测试负担。这时候就突然想起了可以用脚本语言处理,直接拼接成我想要的字段,这样不是只需要一次性解决么?下面话不多说了,来一看看详细的介绍吧。

开整

环境 : Node.js

框架 :

"dependencies": {
 "node-xlsx": "^0.11.2"
 }

逻辑 :

Node解决简单重复问题系列之Excel内容的获取

Excel表格样式

Node解决简单重复问题系列之Excel内容的获取

期待输出样式

如上两图展示那样,直接取出相应的值拼接成想到的输出格式。

上代码

'use strict'
var xlsx = require('node-xlsx');
var fs = require('fs');
var path = require('path')
var files = path.resolve(__dirname);
var excelPath;
fs.readdir(files ,function (error,allfiles){
 if(error){
 console.log(error);
 }else{
 allfiles.forEach(function(filename){
  var fileDir = path.join(files,filename);
  fs.stat(fileDir,function(error,stats){
  if(error){
   console.log(error);
  }else{
   // console.log(fileDir);
   if (fileDir.indexOf('xlsx') > 0){
   excelPath = fileDir;
   craeatLanguageText();
   }
  }
  });
 })
 }
});
function craeatLanguageText(){
 console.log(excelPath);
 //读取文件内容
 var obj = xlsx.parse(excelPath);
 var excelObj = obj[0].data;
 var data = [];
 var arr = [];// 语言种类
 for (var i in excelObj) {
 var value = excelObj[i];
 for (var j in value) {
  if (i == 0) {
  if (j > 1) {
   arr.push(value[j]);
  }
  } else {
  if (j > 1) {
   var str = arr[j - 2];
   var item = value[0]
   var vaue = value[j];
   var reg = /'/
   vaue = vaue.replace(reg, "'");
   str = str + '\n' + '"' + item + '"' + ' ' + '=' + " " + '"' + vaue + '"' + ';';
   arr[j - 2] = str;
   console.log(str);
  }
  }
 }
 }
 var languageStr = arr.join('\n');
 //将文件内容插入新的文件中
 fs.writeFileSync('language.text', languageStr, { encoding: "utf8" });
}

逻辑比较容易看懂,不再赘述,直接在node项目文件夹拖入要解析的Excel 运行即可。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JQuery 1.4 中的Ajax问题
Jan 23 Javascript
jquery dialog键盘事件代码
Aug 01 Javascript
TextArea不支持maxlength的解决办法(jquery)
Sep 13 Javascript
动态获取复选框checkbox选中个数的jquery代码
Jun 25 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
May 25 Javascript
JS调用Android、Ios原生控件
Jan 06 Javascript
js控制一个按钮是否可点击(可使用)disabled的实例
Feb 14 Javascript
angular bootstrap timepicker TypeError提示怎么办
Jun 13 Javascript
谈谈JS中的!!
Dec 07 Javascript
分享vue里swiper的一些坑
Aug 30 Javascript
Js通过AES加密后PHP用Openssl解密的方法
Jul 12 Javascript
Vue.js组件props数据验证实现详解
Oct 19 Javascript
node作为中间服务层如何发送请求(发送请求的实现方法详解)
Jan 02 #Javascript
React教程之封装一个Portal可复用组件的方法
Jan 02 #Javascript
Node层模拟实现multipart表单的文件上传示例
Jan 02 #Javascript
10行原生JS实现文字无缝滚动(超简单)
Jan 02 #Javascript
js原生实现移动端手指滑动轮播图效果的示例
Jan 02 #Javascript
vue父组件向子组件(props)传递数据的方法
Jan 02 #Javascript
基于wordpress的ajax写法详解
Jan 02 #Javascript
You might like
PHP下10件你也许并不了解的事情
2008/09/11 PHP
PHP iconv 解决utf-8和gb2312编码转换问题
2010/04/12 PHP
MySQL 日期时间函数常用总结
2012/06/12 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
2015/01/20 PHP
php将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
PHP编译configure时常见错误的总结
2017/08/17 PHP
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
js实现收缩菜单效果实例代码
2013/10/30 Javascript
JavaScript动态改变HTML页面元素例如添加或删除
2014/08/10 Javascript
使用jsonp完美解决跨域问题
2014/11/27 Javascript
将JSON字符串转换成Map对象的方法
2016/11/30 Javascript
如何给ss bash 写一个 WEB 端查看流量的页面
2017/03/23 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
2017/06/02 Javascript
js实现图片旋转 js滚动鼠标中间对图片放大缩小
2017/07/05 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
2017/09/18 Javascript
vue中tab选项卡的实现思路
2018/11/25 Javascript
Vue v-bind动态绑定class实例方法
2020/01/15 Javascript
vue 中的 render 函数作用详解
2020/02/28 Javascript
nodejs脚本centos开机启动实操方法
2020/03/04 NodeJs
vue中实现点击空白区域关闭弹窗的两种方法
2020/12/30 Vue.js
python+opencv+caffe+摄像头做目标检测的实例代码
2018/08/03 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
2019/06/17 Python
ORM Django 终端打印 SQL 语句实现解析
2019/08/09 Python
python Dijkstra算法实现最短路径问题的方法
2019/09/19 Python
pygame实现贪吃蛇游戏(上)
2019/10/29 Python
python输出pdf文档的实例
2020/02/13 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
2020/02/28 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
2020/06/28 Python
一款简洁的纯css3代码实现的动画导航
2014/10/31 HTML / CSS
计算机专业应届毕业生自荐信
2013/09/26 职场文书
销售找工作求职信
2013/12/20 职场文书
2015会计试用期工作总结
2014/12/12 职场文书
初三英语教学反思
2016/02/15 职场文书
2016年五一国际劳动节活动总结
2016/04/06 职场文书
如何在Mac上通过docker配置PHP开发环境
2021/05/29 PHP
Django使用echarts进行可视化展示的实践
2021/06/10 Python