블로그 이미지
K's blog

카테고리

분류 전체보기 (59)
Welcome to K's Blog (25)
K's America Life (20)
Study hardly!!!! (8)
Total
Today
Yesterday


연구실 과제중에 .txt 파일을 excel로 열어서 확인하는 부분이 있었어요.
txt 파일은 특정 구분자로 구별되어 알아보기가 쉽지 않은 상태!!!

excel로 열어서 한눈에 보기 좋게 한 데이터를 xml로 저장하려는데...

무작정 파일 -> 다른 이름으로 저장 -> 파일형식 xml로 저장할때 다음과 같은 메시지가 나옵니다.





"XML 매핑이 없기때문에 저장할 수 없다."

즉, XML을 mapping시켜야 한다는 말인데, 
여기서는 XML을 mapping 시켜서 저장하는 방법을 알아보겠습니다.


먼저 기존 파일의 형식을 알아봐야 할텐데요, 

임의로 값을 만들기 위해서 다음과 같이 데이터를 생성합니다.




데이터를 살펴보면, 
속성값이 될 부분은 이름, 성격, 본 직업이 있습니다.

그리고 이름에 대해서 성격과 본 직업이 나열되어 있는데, 
위와같은 데이터를 XML로 Mapping 시키기 위해서 
XML Schema를 나타냅니다.

먼저 한사람에 대한 정보를 나타내기 위해서 <person>이라는 Element를 만들고, 
<person>에 대한 속성값으로 이름(name), 성격(personality), 본 직업(job)을 정의합니다.
이러한 <person>의 값이 저장되기 위한 <2days_1night> 이라는 Element를 생성합니다.

이렇게 정의된 것을 알아보면, 

<1박_2일>
<person name="강호동"  personality="무서움" job="씨름선수" />
</1박_2일>

다음과 같이 나타낼 수 있겠는데요, 
이러한 내용을 Schema롤 나타내면,

<1박_2일>
<person name=""  personality="" job="" />
</1박_2일>

다음과 같이 정의할 수 있겠군요!!


이제, 위의 스키마를 실제 엑셀에 적용하게 될텐데요,
위의것을 그대로 사용하게 되면 1명의 정보만이 Mapping이 된다고 합니다...
(이유는... 한 줄만 써놔서인지... 원래그런지는 잘 모르겠네요;; ㅋ)

때문에 2명이상의 복수의 값을 xml로 Mapping하기 위한 방법으로는, 
저 <person> element를 2줄 써주면 됩니다.

<1박_2일>
<person name=""  personality="" job="" />
<person name=""  personality="" job="" />
</1박_2일>


다음과 같이 작성하시면 됩니다. 

전체 XML 코드는 다음과 같습니다.


<?xml version="1.0" encoding="EUC-KR"?>
<2days_1night>
<person name=""  personality="" job="" />
<person name=""  personality="" job="" />
</2days_1night>


자!!! 이제 XML Schema가 준비가 되었으니, Excel에 Mapping 시켜 보도록 하겠습니다.

먼저 위의 schema를 적당한 이름으로 저장합니다.
예를들어, 여기서는, people.xml 이라고 저장하겠습니다.


이제 Excel로 돌아와서 

메뉴 -> 데이터 -> XML -> XML원본    을 선택합니다.






그러면 Side bar에 다음과 같이 XML 원본이라는 부분이 나오는데, 
여기서 XML 맵... 부분을 클릭합니다.




위와같은 창이 뜨면 추가 버튼을 누르고, 
해당 파일이 있는 폴더를 찾아들어가서, xml파일을 추가합니다.

추가가 되면 문서의 XML맵이 다음과 같이 나타납니다.




people 이라는 XML의 맵이 추가가 된 것을 확인한 다음 확인을 누릅니다.
그렇게 추가된 XML 원본은 다음과 같이 나타납니다.




이제 이 맵을 드래그해서 Excel에 해당 데이터에 끌어 다 놓습니다.
그러면 처음의 데이터 위에 필터와 같이 모양이 바뀌게 됩니다.



이제 xml로 저장을 합니다.


그럼 저장된 파일을 보실 수 있습니다.

저는 한글 인코딩 문제로 한글이 깨져서 나왔네요;;;
(때문에 이 문제를 해결하고자 구글링에 빠져봤지만... XML의 인코딩 문제와 Excel의 인코딩 문제가 복합적으로 말썽이네요ㅠㅠㅠㅠㅠ)


하지만 한글이 아닌 영어라면, 
그래도 해볼만 할듯 한 방법인거 같습니다...ㅋ



Posted by K's blog
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함