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中的对象创建 实例附注释
Feb 08 Javascript
用jquery模仿的a的title属性(兼容ie6/7)
Jan 21 Javascript
js由下向上不断上升冒气泡效果实例
May 07 Javascript
jQuery代码实现发展历程时间轴特效
Jul 30 Javascript
JavaScript修改作用域外变量的方法
Mar 25 Javascript
获取JS中网页各种高宽与位置的方法总结
Jul 27 Javascript
微信小程序实现点击返回顶层的方法
Jul 12 Javascript
angular5 httpclient的示例实战
Mar 12 Javascript
JS 实现分页打印功能
May 16 Javascript
12个提高JavaScript技能的概念(小结)
May 09 Javascript
JS数组方法slice()用法实例分析
Jan 18 Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
Sep 24 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
玛琪朵 Macchiato
2021/03/03 咖啡文化
PHP 字符截取 解决中文的截取问题,不用mb系列
2009/09/29 PHP
phpMyAdmin安装并配置允许空密码登录
2015/07/04 PHP
在IE下:float属性会影响offsetTop的取值
2006/12/22 Javascript
我遇到的参数传递中 双引号单引号嵌套问题
2010/02/11 Javascript
js中判断数字\字母\中文的正则表达式 (实例)
2012/06/29 Javascript
js闭包实例汇总
2014/11/09 Javascript
Node.js中调用mysql存储过程示例
2014/12/20 Javascript
JavaScript通过字典进行字符串翻译转换的方法
2015/03/19 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
2016/07/26 NodeJs
EditPlus 正则表达式 实战(3)
2016/12/15 Javascript
原生的强大DOM选择器querySelector介绍
2016/12/21 Javascript
js实现九宫格拼图小游戏
2017/02/13 Javascript
ES6中数组array新增方法实例总结
2017/11/07 Javascript
如何在vue中使用ts的示例代码
2018/02/28 Javascript
谈谈JavaScript中super(props)的重要性
2019/02/12 Javascript
Vue 后台管理类项目兼容IE9+的方法示例
2019/02/20 Javascript
9102了,你还不会移动端真机调试吗
2019/03/25 Javascript
JS数组方法join()用法实例分析
2020/01/18 Javascript
JavaScript 异步时序问题
2020/11/20 Javascript
浅谈Python实现Apriori算法介绍
2017/12/20 Python
详解用Python处理HTML转义字符的5种方式
2017/12/27 Python
python3学习笔记之多进程分布式小例子
2018/02/13 Python
Python数据可视化 pyecharts实现各种统计图表过程详解
2019/08/15 Python
softmax及python实现过程解析
2019/09/30 Python
python-OpenCV 实现将数组转换成灰度图和彩图
2020/01/09 Python
Python爬取365好书中小说代码实例
2020/02/28 Python
浅谈HTML5新增和废弃的标签
2019/04/28 HTML / CSS
应聘医药销售自荐书范文
2014/02/08 职场文书
大学生学习2014全国两会心得体会
2014/03/13 职场文书
生产车间标语
2014/06/11 职场文书
环保志愿者活动方案
2014/08/14 职场文书
围城读书笔记
2015/06/26 职场文书
婚庆答谢词大全
2015/09/29 职场文书
python基础之模块的导入
2021/10/24 Python