Home  >  Article  >  Web Front-end  >  How to get Excel content in Node

How to get Excel content in Node

亚连
亚连Original
2018-06-14 11:42:061435browse

This article mainly introduces you to the relevant information about using Node to solve a series of simple repetitive problems and obtaining Excel content. The article introduces it in great detail through sample code. It has certain reference learning value for everyone's study or work. It needs Friends, let’s study together.

Cause--Lazy

In recent projects, multi-language translation is often used, and the multi-language adaptation of iOS is designed to The multi-language output is a series of tables made by designated translations, which basically have to be copied bit by bit into the corresponding language files. This repeats, especially when the demand is superimposed and there are many corresponding translations, it is very difficult to copy and paste one by one. It is time-consuming and laborious. Moreover, multi-language errors are not easy to troubleshoot, which virtually increases the testing burden. At this time, I suddenly remembered that I can use scripting language to process it and directly splice it into the fields I want. Doesn't this only need to be solved once? Not much to say below, let’s take a look at the detailed introduction.

Open the whole

Environment: Node.js

Framework:

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

Logic:

Excel table style

Expected output style

As shown in the above two pictures, directly take out the corresponding Values ​​are concatenated into the desired output format.

The code above

'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" });
}

The logic is relatively easy to understand, so I won’t go into details. Just drag the Excel to be parsed into the node project folder and run it. That’s it.

The above is what I compiled for everyone. I hope it will be helpful to everyone in the future.

Related articles:

Reporting 404 issues regarding vue project resource files in webpack (detailed tutorial)

In vue.js How to integrate vux to achieve pull-up loading and pull-down refresh

How to use Gulp to implement static web page modularization? How to do it specifically?

The above is the detailed content of How to get Excel content in Node. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:How to use Builder modeNext article:How to use Builder mode