이 글에서는 Node를 사용하여 일련의 단순 반복 문제를 해결하고 Excel 콘텐츠를 얻는 방법에 대한 정보를 주로 소개합니다. 이 글은 모든 사람의 학습이나 업무에 대한 특정 참고 학습 가치를 제공합니다. 필요하신 분 아래에서 함께 공부해 보세요.
원인--Lazy
최근 프로젝트에서는 다국어 번역이 자주 사용되는데, iOS의 다국어 적응은 지정된 번역으로 만들어진 일련의 테이블을 기본적으로 제공하도록 설계되었습니다. 해당 언어 파일에 비트 단위로 복사하는 등, 특히 수요가 중첩되고 해당 번역이 많은 경우 하나씩 복사하여 붙여넣는 것은 매우 시간이 많이 걸리고 힘든 작업입니다. 게다가 다국어 오류는 해결하기가 쉽지 않아 사실상 테스트 부담이 가중됩니다. 이때 문득 스크립트 언어를 사용하여 처리하고 내가 원하는 분야에 직접 연결할 수 있다는 생각이 들었습니다. 이 문제는 한 번만 해결하면 되는 것 아닌가요? 아래에서는 할 말이 많지 않으니, 자세한 소개를 살펴보겠습니다.
Environment: Node.jsFramework:
"dependencies": { "node-xlsx": "^0.11.2" }
Logic:
Excel 테이블 스타일위와 같이 출력 스타일을 기대하세요사진에서와 같이 직접 꺼내세요 해당 값은 원하는 출력 형식으로 연결됩니다.
코드
관련 기사: vue.js에 vux를 통합하여 풀업 로딩 및 풀다운 새로 고침을 구현하는 방법 방법 Gulp를 사용하여 정적을 달성하려면 웹 페이지의 모듈화를 구현하는 방법은 무엇입니까? 위 내용은 Node에서 Excel 콘텐츠를 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!'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" });
}