-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexcelParser.js
68 lines (52 loc) · 1.54 KB
/
excelParser.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
const excel = require('excel');
const xlsx= require('xlsx');
const arrayJsonMerge = (array) => {
let resultArray=new Array();
array.forEach(element => {
element.forEach(lowerElement=>{
resultArray.push(lowerElement);
});
});
return resultArray;
};
const excelRead = (path) => {
let work='';
try{
work = xlsx.readFile(path);
}catch(e){
return {'flag' : false ,'msg' : `재시도 요청 ${e}` };
}
return workseet=work.Sheets["Sheet1"];
};
const excelWorkseetParser = (workseet) =>{
let ref = workseet["!ref"].replace(/[A-Za-z]*/gi,'').split(":");
let tempArray = new Array();
let map ='';
try {
for(let i = ref[0];i<ref[1];i++){
tempArray.push("A"+i);
}
//console.log(tempArray);
map = tempArray.map(s=>JSON.parse(workseet[s].w).data);
map=arrayJsonMerge(map);
//value 값
} catch (error) {
return {'flag' : false ,'msg' : `${error}` };
}
const key= Object.keys(map[0]); //header 값
const values = map;
return {'flag' : true, 'header':key,'list':values};
}
const exceltoJsonExport = (json) => {
const newworkbook=xlsx.utils.book_new();
xlsx.utils.book_append_sheet(newworkbook,xlsx.utils.json_to_sheet(json),"NewExcel");
xlsx.writeFile(newworkbook,'./test.xlsx');
xlsx.writeFile(newworkbook,'test.xlsx');
return xlsx;
};
module.exports = {
arrayJsonMerge,
excelRead,
excelWorkseetParser,
exceltoJsonExport
};