본문 바로가기

web/JSP

JSP excel 소수점 변환 문제! (excel format 문제!)

JSP에서 excel 변환문제는 여러 포스트에서 볼수 있다.(나도 몰라서 쉽게 찾아서 했다.)
현업에서 단가를 소수점 까지 나타내 달라는 요청이 왔는데.
JSP에선 간단하게 sql에서 값을 double로 받고 그대로 뿌려주면 끝났었다.

BUT 문제는 InsertComma()!
excel에선 InsertComma()를 쓰고 서식을 보게 되면 (셀서식->범주) 만일 단위가 100단위인 경우엔 InsertComma()가 적용되지 않아서 일반으로 되고, 1000단위 이상은 숫자로 되어 자릿수를 표기하는것을 볼수 있다. 
- 사실 여기 까지 알아내는데 하루가 걸렸다. 왜 엑셀로 변환하면 않되는지 몰라서 계속 소스만 보다가 단위문제인것을 알았다.


                 InsertComma가 들어갔지만 자릿수때문에 형식이 일반으로 되었다.

                       InsertComma가 제대로 들어간거 (숫자로 자릿수까지 잘 적용되었다.)

그러면 InsertComma대신 다른것을 써야 하는데 어떻게 해야하는가?!
(자릿수에 따른 자바가 다른게 자릿수를 선택한다는것을 알게될것이다.)

엑셀을 브라우져에서 볼수 있는것이 힌트이다.
요즘에 오피는  openOffice를 표방하며 어디서든지 구동이 가능하게 되었는데. Office가 스크립트에서 작동하도록 한것이다. 그러면 일반 엑셀파일도 html로 변환이 가능하므로 변환값의 함수를 찾기만 하면 된다.(사실 처음엔 함수라고 생각했다.)

- 지금부터는 파일 서식(html에서의 style 을 보기위해서 하는것이기 떄문에 원하는 형식으로 엑셀파일으르 작성한 다음 부터 따라 하시면 됩니다.

1.서식을 소수점까지 한다음에(자릿수 체크) 다른이름으로 저장->다른형식으로 저장을 클릭한다. 

2. 파일 형식을 웹페이지(*.htm; *.html) 로 저장한다. 

3.저장한 파일을 열어보면(notepad 같은 걸로 여시면 됩니다.) 값이 들어있던 자리의 style을 보시면 됩니다.
여기선 3Dx169, 3Dx170  등으로 되어있군요. 이름이 틀려서 나오네요 찾는데 애먹었습니다;;
-2007의 문제인지는 모르겠으나 2003에서 했을경우 정확한 이름이 나왔습니다. 확인해야겠습니다.

4. x170 으로 클래스로 지정되어 있습니다. 여기서 다른 폰트스타일은 제외하고  mso-number-format:"~~~"부분을 주목하세요! 그 부분을 이제 JSP파일로 복사해서 저장할려는 테이블 혹은 글씨의 스타일에 주면 되는겁니다.

5. 일단 값이 sql 에서 받기 때문에 Double로 받습니다.(그래야 소수점까지 표시가 잘 되겠죠? 아니면 소수점이 짤려서 값이  .0 으로 표기 됩니다.)

6. 해당하는(저장하려는 부분에 )스타일을 위에서 복사한 값을 주시면 됩니다. 


! 이제 실행해보세요 !
위에서 보듯이 엑셀에서 지원하는 모든 포멧을 사용할수 있습니다. 또한 엑셀의 대부분의 기능을 함수로 보여 HTML로 표시하기 떄문에 브라우져 창에서도 볼수 있었던 거구요. (office2007 의 경우엔 오페라, 사파리, 크롬,파폭까지 다 보이더군요. 웹앱이라는걸 실감하게 합니다.)

-파워포인트 부분은  다음에 실험해보고 올려보겠습니다.


'web > JSP' 카테고리의 다른 글

JSP 한글깨짐  (0) 2010.10.13
script 즐겨찾기 등록, 시작페이지로 등록  (0) 2010.10.07
MVC 모델 순서도  (2) 2010.09.30
Scope의 유효 시간  (0) 2010.09.27
자카르타 톰캣 과 아파치 는 왜 설치 해야하는걸까?!  (0) 2010.09.26