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 相关文章推荐
自动检查并替换文本框内的字符
Jun 30 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
Dec 14 Javascript
jQuery图片播放8款精美插件分享
Feb 17 Javascript
ie下$.getJSON出现问题的解决方法
Feb 12 Javascript
Jquery中Event对象属性小结
Feb 27 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
Apr 06 Javascript
JS全局变量和局部变量最新解析
Jun 24 Javascript
canvas实现图像布局填充功能
Feb 06 Javascript
node.js 发布订阅模式的实例
Sep 10 Javascript
基于webpack4.X从零搭建React脚手架的方法步骤
Dec 23 Javascript
微信小程序上传多图到服务器并获取返回的路径
May 05 Javascript
vue-以文件流-blob-的形式-下载-导出文件操作
Aug 07 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制作的意见反馈表源码
2007/03/11 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
PHP全功能无变形图片裁剪操作类与用法示例
2017/01/10 PHP
document.open() 与 document.write()的区别
2007/08/13 Javascript
关于javascript中的parseInt使用技巧
2009/09/03 Javascript
JavaScript与DropDownList 区别分析
2010/01/01 Javascript
Javascript创建自定义对象 创建Object实例添加属性和方法
2012/06/04 Javascript
javascript设置连续两次点击按钮时间间隔的方法
2014/10/28 Javascript
Bootstrap创建可折叠的组件
2016/02/23 Javascript
jQuery遍历DOM元素与节点方法详解
2016/04/14 Javascript
jQuery如何防止Ajax重复提交
2016/10/14 Javascript
json2.js 入门教程之使用方法与实例分析
2017/09/14 Javascript
JS实现访问DOM对象指定节点的方法示例
2018/04/04 Javascript
vue 项目打包通过命令修改 vue-router 模式 修改 API 接口前缀
2018/06/13 Javascript
Vue.js实现备忘录功能
2019/06/26 Javascript
微信小程序 组件的外部样式externalClasses使用详解
2019/09/06 Javascript
vue实现把接口单独存放在一个文件方式
2020/08/13 Javascript
Python学习思维导图(必看篇)
2017/06/26 Python
Linux下安装python3.6和第三方库的教程详解
2018/11/09 Python
python itchat给指定联系人发消息的方法
2019/06/11 Python
在win64上使用bypy进行百度网盘文件上传功能
2020/01/02 Python
pytorch实现用CNN和LSTM对文本进行分类方式
2020/01/08 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
2020/10/15 Python
Python中对象的比较操作==和is区别详析
2021/02/12 Python
高性能装备提升营地:Kammok
2019/02/27 全球购物
JNI的定义
2012/11/25 面试题
数学系个人求职信范文
2014/01/30 职场文书
体育馆的标语
2014/06/24 职场文书
拾金不昧表扬信
2015/01/16 职场文书
优秀员工自荐书
2015/03/06 职场文书
2016年大学生党员承诺书
2016/03/24 职场文书
员工试用期工作总结
2019/06/20 职场文书
Python如何配置环境变量详解
2021/05/18 Python
一次项目中Thinkphp绕过禁用函数的实战记录
2021/11/17 PHP
python周期任务调度工具Schedule使用详解
2021/11/23 Python
python井字棋游戏实现人机对战
2022/04/28 Python