728x90

프로젝트/xls(x)<->csv 4

xls <-> csv 변환기 - 3

다른 업무 처리하느라 신경쓰지 못했던 코드를 조금 손보았다. Covnerter 인터페이스 활용하여 중복 코드 제거 프로젝트에서는 엑셀->csv 와 csv->엑셀 변환 메서드를 가진 class가 분리되어 있다. 초기 설계 시 각각을 Converter라는 인터페이스를 상속받은 구현체로 선언해놓긴 했지만, 막상 로직에서는 객체지향의 장점을 살리지 못하고 각각 메서드 자체를 분리한 후 사용자로부터 작업 번호를 받아 switch문을 통해 필요한 메서드가 호출되도록 작성했었다. public void work(int num){ try { switch(num) { case 1 : csvToExcel(); break; case 2 : excelToCsv(); break; case 0 : exit(); break; //T..

xls <-> csv 변환기 - 2

앞의 글에서 말했듯이 만드는 동안 추가적으로 고려해야 할 점이 있었다. 일단 첫 번째로 인코딩을 어떻게 할지 였는데, 일단 인코딩에 대해 보기 편하게 정리된 Tistory들이 많아서 관련 내용을 참조하였다. https://onlywis.tistory.com/2 문자열 인코딩 개념 정리(ASCII/ANSI/EUC-KR/CP949/UTF-8/UNICODE) 지금껏 개발을 해오면서 ASCII와 ANSI의 차이에 대해 깊게 생각해 본 적이 없었다.UTF-8 기본으로 하여 개발을 해왔던 이유도 있거니와ASCII=ANSI로 생각해도 사실 큰 문제는 없어왔다. 점 하나 그냥 찍 onlywis.tistory.com https://it-eldorado.tistory.com/61 [문자열 인코딩] ASCII, ANSI, ..

xls <-> csv 변환기 - 1

우선 excel에서 값을 읽어오는 것 자체는 apache의 poi 라이브러리로 가능하고, 방법도 그리 어렵지 않으니 설명은 생략하고 만드는 과정에서의 고려사항과 트러블 슈팅을 위주로 기술하려 한다. 일단 변환을 구현하기 위해 csv가 뭔지, 어떤 식으로 변환되는 건지 알아야했다. csv는 comma separated value의 약자로, 콤마(,)로 값이 분리되는 파일 형식이다. 엑셀에서 이런 값이 있다고 하면, csv로 변환할 경우 이렇게 변환되는 것이다. 딱 저기까지 알고 코드를 짜려고 보니 바로 첫 번째 난관에 봉착했다. '그럼 엑셀 값에 콤마(,)가 들어있으면 어떻게 되는데?' 거두절미하고 excel 자체 기능을 통해 실험해보았다. 이렇게 넣고 excel에서 .csv 로 다른이름 저장 후 메모장으..

xls <-> csv 변환기 - 0

기본적으로 엑셀 파일과 csv 방식 파일은 Office Excel내에서 다른 이름으로 저장 기능을 통해 양방향 변환이 가능하다. 회사 업무 중 다량의 파일을 변환할 일이 생겼는데, 파일을 하나하나 변환하자니 좀 불편했다. 그렇다고 웹에 올라와있는 온라인 툴을 쓰자니 변환할 자료의 성격 상 외부로 노출시킬 가능성이 생기면 곤란했다. 조금 더 편하게 하는 방법이 없을까 고민하다가 결국 Java와 apache.poi 라이브러리를 사용해 직접 변환하는 코드를 만들었다. 서비스 배포를 목적으로 하는 프로젝트는 아니지만 코드를 짜면서 겪었던 것들을 정리하고, 최종적으로 부끄럽지 않을 정도로 수정한 후 소스를 공유해야겠다. 취업을 위한 포트폴리오를 목적으로 하는 게 아닌 실질적인 필요에 의해 무언가를 만들어내는 사실..

728x90