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 相关文章推荐
国外的为初学者写的JavaScript教程
Jun 09 Javascript
javascript 函数速查表
Feb 07 Javascript
JavaScript页面刷新与弹出窗口问题的解决方法
Mar 02 Javascript
JS跨域解决方案之使用CORS实现跨域
Apr 14 Javascript
使用JQuery选择HTML遍历函数的方法
Sep 17 Javascript
AngularJS 应用身份认证的技巧总结
Nov 07 Javascript
jquery插入兄弟节点的操作方法
Dec 07 Javascript
js仿京东轮播效果 选项卡套选项卡使用
Jan 12 Javascript
javascript图片预览和上传(兼容IE)
Mar 15 Javascript
JS简单表单验证功能完整示例
Jan 26 Javascript
Javascript实现单选框效果
Dec 09 Javascript
js加减乘除精确运算方法实例代码
Jan 17 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
BBS(php & mysql)完整版(三)
2006/10/09 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
2016/02/14 PHP
CodeIgniter生成静态页的方法
2016/05/17 PHP
PHP+sqlite数据库操作示例(创建/打开/插入/检索)
2016/05/26 PHP
微信自定义菜单的创建/查询/取消php示例代码
2016/08/05 PHP
php+Memcached实现简单留言板功能示例
2017/02/15 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
PDO::getAttribute讲解
2019/01/28 PHP
php面向对象重点知识分享
2019/09/27 PHP
asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码
2010/09/19 Javascript
javascript中window.event事件用法详解
2012/12/11 Javascript
ExtJS判断IE浏览器类型的方法
2014/02/10 Javascript
jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
2014/03/27 Javascript
javascript实现给定半径求出圆的面积
2015/06/26 Javascript
页面get请求 中文参数方法乱码问题的快速解决方法
2016/05/31 Javascript
canvas学习之API整理笔记(一)
2016/12/29 Javascript
jQuery分页插件jquery.pagination.js使用方法解析
2017/02/09 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
微信小程序获取音频时长与实时获取播放进度问题
2018/08/28 Javascript
使用Vue.js 和Chart.js制作绚丽多彩的图表
2019/06/15 Javascript
如何实现vue的tree组件
2020/12/03 Vue.js
[01:01:13]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第三场
2018/04/06 DOTA
python使用cStringIO实现临时内存文件访问的方法
2015/03/26 Python
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
ubuntu安装mysql pycharm sublime
2018/02/20 Python
Python中zip()函数的解释和可视化(实例详解)
2020/02/16 Python
Python使用sys.exc_info()方法获取异常信息
2020/07/23 Python
Ibatis中如何提高SQL Map的性能
2013/05/11 面试题
大三学习计划书范文
2014/05/02 职场文书
村党支部换届选举方案
2014/05/02 职场文书
演讲稿开场白台词
2014/08/25 职场文书
高校群众路线教育实践活动剖析材料
2014/10/10 职场文书
幼儿教师2014年度工作总结
2014/12/16 职场文书
2015年小学教导处工作总结
2015/05/26 职场文书
《中国古代诗歌散文欣赏》高中语文教材
2019/08/20 职场文书
CSS实现隐藏搜索框功能(动画正反向序列)
2021/07/21 HTML / CSS