엑셀을 XML로 추출해보자. ExcelExportXML

 이번 포스팅도 지난 2012년 6월에 했던걸 정리해봅니다.

 일반적으로 게임을 만든다고 하면 기획 데이터 원본은 엑셀로 작성들하시죠? 다음 공정은 회사나 팀마나 다르겠죠. 간단하게 제 경우를 소개하자면, 전전 회사는 엑셀 -> txt -> 자체 Binary 포멧이었고 전회사는 엑셀 -> Lua 였습니다. 둘다 원본 데이터를 정해진 타입과 형식에 따라 처리했다고 했을 때 장단점이 있겠죠.

 첫번째로 자체포맷을 했을 때는 데이터를 마음데로 커스터마이징 한다던지, 서버 클라 데이터를 나눠 클라의 경우 꼭 필요한 데이터만 가지고 있을 수 있게 할 수 있었습니다. 단점으로 커스터마이징 관련해서 너무 툴과 관련 구조체의 유지보수가 힘들었던게 있었죠.

 두번째로 처음 시도해보는 것 이었는데 루아 자체를 데이터로 처리하는 방식이었죠. 루아 테이블이나 변수가 바로 기획 정적 데이터라는 개념으로 썼기 때문에 어찌보면 편했던 것도 있습니다. 또한 엑셀을 바로 lua로 익스포트 해주는 툴 하나만 있었기 때문에 유지보수도 괜찮았죠. 속도야 LuaJit 으로 하면 될 것 같았는데 문제는 루아를 데이터로 로딩하다보니 메모리를 무지 많이 먹더군요. 제 기억으로 일반 데이터 대비 3배는 넘었던걸로 기억이... 좋은 경험한거죠뭐...

 잡설이 길었네요. 이렇게해서 이번에는 노멀하게 가기로 하고 엑셀을 바로 XML로 익스포트해서 사용하기로 했습니다. XML을 기획 정적 데이터로 쓰는것이죠. 본론으로 들어가기에 앞서 엑셀로 XML 저장을 시도해봤던 것을 정리하자면,

 Excel 2010인데 기본적으로 다른이름으로 저장에서 XML 데이터로 저장하려고 하면 위와 같이 '통합 문서에 XML 매핑이 없기 때문에 XML 데이터를 저장할 수 없습니다.' 라고 뜨면서 저장이 안되더군요. 될줄 알았는데....구글링으로 해결책? 을 찾은 것 같긴한데 해보지는 않았습니다.
 해결책 링크1, 해결책 링크2

 다음에는 XML 스프레드시트 2003 으로 저장해봤습니다. 하지만,

 저장하기전부터 스프레드시트라는 단어가 걸리더니 역시나 엑셀 포맷으로 된 XML로 저장이 되버리네요. 제가 원한건,

 스샷과 같이 이렇게 간단한걸 원했는데 말이죠. 물론 여러분들도 마찬가지겠죠?

 이제 본론으로 들어가보겠습니다. 직접 엑셀 to XML 익스포터를 만들기는 그렇고해서 구글링을 하니 역시나 있네요. codeproject에 ExcelExportXML이라고 있었습니다. 이것을 사용하면 위 스샷과 같이 간단하게 XML로 익스포트 됩니다.

 Microsoft Excel 2010의 Add-in 입니다. Download setup을 눌러 다운로드 받습니다. 코드프로젝트에 로그인 되어 있어야합니다. 참고로 소스는 Visual Studio 2010의 C#으로 만들어졌습니다.

 적당한 곳에 압축 해주 후, setup.exe를 실행합니다.

 Microsoft Office 사용자 지정 설치 관리자 확인 창이 뜹니다. 설치를 클릭합니다.

 설치가 완료되었네요. 닫기를 클릭합니다.

 엑셀을 실행해서 파일 -> 옵션 -> 리본 사용자 지정에서 추가기능에 체크해주고 확인을 클릭합니다.

 그러면 추가기능 탭이 보이고 클릭하시면 Generate XML 이라는 버튼이 생겨져 있습니다. 이제 엑셀에 기획 데이터를 입력하고 버튼을 클릭하면 파일 저장 다이얼로그 창이 뜨고 저장을 하시면 간단한 XML 파일이 추출됩니다.

 사이트 설명에보니 최대 26컬럼, 'Z' 까지 지원한다고 되어있네요. 그리고 Sheet와 Column 이름에 공백이 들어가면 안된다고합니다.

댓글

이 블로그의 인기 게시물

'xxx.exe' 프로그램을 시작할 수 없습니다. 지정된 파일을 찾을 수 없습니다.

goorm IDE에서 node.js 프로젝트로 Hello World Simple Server 만들어 띄워보기

애드센스 수익을 웨스턴 유니온으로 수표대신 현금으로 지급 받아보자.