프로그래밍/JavaScript

웹에 엑셀 데이터 붙여넣기

가라멜 2018. 5. 15. 10:14
반응형

엑셀파일에 있는 데이터를 그대로 화면으로 옮기기 위한 소스


엑셀의 데이터는 줄이 \n으로 구분되고 각 셀의 경우 \t로 구분된다.

따라서 \n과 \t로 구분해주어 데이터를 가공해 줄 수 있다.




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//TextArea 데이터 테이블로 치환
function generateTable() {
  var data = $('textarea[name=excel_data]').val();
  var rows = data.split("\n");
  var table = $('<table />');
 
  for(var y in rows) {
   var cells = rows[y].split("\t");
   var row = $('<tr />');
   for(var x in cells) {
      row.append('<td>'+cells[x]+'</td>');
   }
  table.append(row);
}
 
$('#excel_table').html(table);
 
}

cs





TextArea를 하나 만들어 엑셀 데이터를 붙여넣기 한 뒤 함수를 실행하면 

엑셀에 있던 형태 그대로 테이블을 생성.


이것을 응용하면 자기 입맛에 맞게 데이터를 가공할 수 있다.


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
//TextArea의 데이터를 파싱
function generateData(){
    var data = $('textarea[name=excel_data]').val();
    
    var rows = data.split("\n");
    var name = ["a""b""c""d",  "d"];
    var jsonArr = [];
 
    for ( var i in rows) {
        
        var cells = rows[i].split("\t");
        var json = new Object();
        var pass = true;
        for ( var j in cells) {
            if(cells[0== "" || cells[0== null || cells[0== undefined){
                pass = false;
                continue;
            }else{
                json[name[j]] = cells[j];    
            }
            
        }        
        if(pass){jsonArr.push(json);};
    }
    return jsonArr;
}
cs

나의 경우 json 데이터가 있는 배열을 만들려고 가공했다.


반응형