본문 바로가기
웹관련/Ajax

[Ajax] 엑셀에서 xml 데이터 변환뒤 ajax로 파일 읽어오기

by 착한덕환 2017. 4. 21.



많은량의 데이터가 엑셀로 되어있는경우, 엑셀에서 xml 데이터로 변환한뒤


해당파일을 ajax 로 읽어와서 화면에 뿌려주는 경우가 필요할때가 있습니다.


[ 변환된 XML 데이터 예시 ]

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<UserList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<items>

<user>

<uName>홍길동</uName>

<uCollage>서울대</uCollage>

<uSubject>사회복지학과</uSubject>

</user>

</items>

</UserList>



[ Ajax 코드로 읽어드리고 뿌리는부분 예시 ]

<script type="text/javascript">

    function xmlDataReturn() {

        var xmlDataUser = null;

        if (xmlDataUser == null) {

            $.ajax({

                type: "GET",

                dataType: "xml",

                url: "TransStatus.xml",

                success: function (xml) {

                    xmlDataUser = xml;

                    UserList(xmlDataUser);

                },

                error: function (xmlHttpRequest, textStatus, errorThrown) {

                    alert("처리중 에러가 발생하였습니다.\n\n잠시후 다시 시도해 주세요.\n\n");

                }

            });

        }

    }


    function UserList(xmlData) {

        var strHtml = '';

        var prnCnt = 0;

        if ($(xmlData).find('user').length > 0) {

            $(xmlData).find('user').each(function(){

                prnCnt++;

                strHtml += '<tr>';

                strHtml += '<td>' + prnCnt + '</td>';

                strHtml += '<td>' + $(this).find("uName").text().substring(0,1) + 'OO</td>';

                strHtml += '<td>' + $(this).find("uCollage").text() + '</td>';

                strHtml += '<td>' + $(this).find("uSubject").text() + '</td>';

                strHtml += '</tr>';

            });


            $('#userList tbody').html(strHtml);

        }

    }



    $(function () {

        xmlDataReturn();

    });

</script>



[ HTML 코드 예시 ]

<table id="userList">

    <colgroup>

         <col width="100px" />

         <col width="200px" />

         <col width="350px" />

         <col width="350px" />

    </colgroup>

    <thead>

        <tr>

            <th>번호</th>

            <th>성명</th>

            <th>학교</th>

            <th>학과</th>

        </tr>

    </thead>


    <tbody>

    </tbody>

</table>


이렇게 하면 대량의 xml 파일을 ajax로 읽어들여서 html 파일에 뿌려줄수 있습니다 ^^



댓글