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 相关文章推荐
推荐11款jQuery开发的复选框和单选框美化插件
Aug 02 Javascript
node.js中的console用法总结
Dec 15 Javascript
jQuery文字横向滚动效果的实现代码
May 31 Javascript
js实现消息滚动效果
Jan 18 Javascript
JS基于面向对象实现的多个倒计时器功能示例
Feb 28 Javascript
基于Node.js的WebSocket通信实现
Mar 11 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
Mar 30 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
Jul 17 jQuery
Javascript之图片的延迟加载的实例详解
Jul 24 Javascript
vue中v-model动态生成的实例详解
Oct 27 Javascript
微信小程序实现折线图的示例代码
Jun 07 Javascript
vue 解决路由只变化参数页面组件不更新问题
Nov 05 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 ss7.5的数据调用 (笔记)
2010/03/08 PHP
php设计模式 Proxy (代理模式)
2011/06/26 PHP
php使HTML标签自动补全闭合函数代码
2012/10/04 PHP
php实现小程序支付完整版
2018/10/09 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
php判断IP地址是否在多个IP段内
2020/08/18 PHP
jQuery之网页换肤实现代码
2011/04/30 Javascript
查看大图功能代码jquery版
2013/11/05 Javascript
JS Loading功能的简单实现
2013/11/29 Javascript
table行随鼠标移动变色示例
2014/05/07 Javascript
基于jQuery实现一个marquee无缝滚动的插件
2017/03/09 Javascript
JavaScript手风琴页面制作
2017/05/17 Javascript
vue loadmore组件上拉加载更多功能示例代码
2017/07/19 Javascript
微信小程序 五星评分的实现实例
2017/08/04 Javascript
详解vue数组遍历方法forEach和map的原理解析和实际应用
2018/11/15 Javascript
js实现上传按钮并显示缩略图小轮子
2020/05/04 Javascript
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
2020/12/25 Vue.js
JavaScript实现跟随鼠标移动的盒子
2021/01/28 Javascript
Python中使用wxPython开发的一个简易笔记本程序实例
2015/02/08 Python
python的文件操作方法汇总
2017/11/10 Python
pandas数据预处理之dataframe的groupby操作方法
2018/04/13 Python
启动Atom并运行python文件的步骤
2018/11/09 Python
使用python3实现操作串口详解
2019/01/01 Python
Python实现去除列表中重复元素的方法总结【7种方法】
2019/02/16 Python
利用Python+阿里云实现DDNS动态域名解析的方法
2019/04/01 Python
python3.7 sys模块的具体使用
2019/07/22 Python
Django中使用CORS实现跨域请求过程解析
2019/08/05 Python
pytorch构建多模型实例
2020/01/15 Python
python实现文字版扫雷
2020/04/24 Python
python利用proxybroker构建爬虫免费IP代理池的实现
2021/02/21 Python
html5的新增的标签和废除的标签简要概述
2013/02/20 HTML / CSS
Agoda香港:全球特价酒店预订
2017/05/07 全球购物
香港家用健身器材、运动器材及健康美容仪器专门店:FitBoxx
2019/12/05 全球购物
如何清空Session
2015/02/23 面试题
自荐信格式的六要素
2013/09/21 职场文书
贫困证明书范文
2015/06/16 职场文书