이번시간에는 opencsv를 이용하여 CSV 파일을 생성해보도록 하겠습니다.
공공기관 사이트를 주로 작업을 하다보니 엑셀다운로드외에
팀버너스리의 데이터 개방 형식(?) 이라고
엑셀다운로드 상위파일인 csv 파일다운로드도 제공해야한다는
클라이언트 요구에 의해 만들어본걸 공유해보고자 포스팅하게되었습니다.
샘플코드이므로 단순히 다운로드 로직은 제외하고 csv 파일쓰는 로직만을 다루도록 하겠습니다.
엑셀파일 쓰기/읽기 및 파일다운로드는 다음 링크를 참조해주세요
2014/10/07 - [코드저장소/java] - 자바 다운로드 유틸을 만들어서 웹서버에 등록되있는 파일을 다운로드 하자
2014/10/07 - [코드저장소/java] - 자바 POI를 이용한 엑셀(xls,xlsx)에 들어있는 데이터들 읽어오기
2014/10/07 - [코드저장소/java] - POI라이브러리를 이용하여 엑셀파일(xls,xlsx) 에 데이터 넣어서 파일로 만들기
제일먼저 Open csv 라이브러리를 다운로드 받도록 하겠습니다.
http://sourceforge.net/projects/opencsv/
opencsv-3.0.jar 파일이 최종버전인거 같네요.
저는 JAVA PROJECT를 생성한후 JAR파일을 INCLUDE 해준다음 진행하였습니다.
아마 보통은 웹프로젝트로 작업을 많이 하시니
Dynamic Web Project 로 진행하시는 분들은 lib
디렉토리 내에 jar 파일을 넣어주시면 되겠고
Maven으로 프로젝트 진행하시는 분들은 pom.xml에
<dependency> <groupId>net.sf.opencsv</groupId> <artifactId>opencsv</artifactId> <version>2.3</version> </dependency>
dependency를 추가해주시면 되실거 같습니다.
Maven에 올라온 최종버전은 2.3이네요;
package opencsv; import java.io.FileOutputStream; import java.io.OutputStreamWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import au.com.bytecode.opencsv.CSVWriter; public class Test { public static void main(String ar[]) { //========가상의 DB조회리스트======== Map<String, Object> hmap = null; ArrayList<Map<String, Object>> list = new ArrayList<Map<String,Object>>(); hmap = new HashMap<String, Object>(); hmap.put("one", 1); hmap.put("two", "한글1"); list.add(hmap); hmap = new HashMap<String, Object>(); hmap.put("one", 11); hmap.put("two", "한글22"); list.add(hmap); hmap = new HashMap<String, Object>(); hmap.put("one", 111); hmap.put("two", "한글3"); list.add(hmap); //========가상의 DB조회리스트======== try { /** * csv 파일을 쓰기위한 설정 * 설명 * D:\\test.csv : csv 파일저장할 위치+파일명 * EUC-KR : 한글깨짐설정을 방지하기위한 인코딩설정(UTF-8로 지정해줄경우 한글깨짐) * ',' : 배열을 나눌 문자열 * '"' : 값을 감싸주기위한 문자 **/ CSVWriter cw = new CSVWriter(new OutputStreamWriter(new FileOutputStream("D:\\test.csv"), "EUC-KR"),',', '"'); try { for(Map<String, Object> m : list) { //배열을 이용하여 row를 CSVWriter 객체에 write cw.writeNext(new String[] { String.valueOf(m.get("one")),String.valueOf(m.get("two"))}); } } catch (Exception e) { e.printStackTrace(); } finally { //무조건 CSVWriter 객체 close cw.close(); } } catch (Exception e) { e.printStackTrace(); } } }
샘플 코드를 구현 후 실행해보았습니다.
실행결과 D드라이브의 test.csv란 파일이 생성되었습니다.
엑셀과 메모장으로 확인해보도록 하겠습니다.
메모장 실행
엑셀 실행
실행결과 정상적으로 CSV 파일이 생성되었습니다.
위 코드를 응용하셔서 사용하시면 되겠습니다.
by 개발로짜
JAVA 샘플 - org.w3c.dom을 이용한 XML파일 및 RSS API 파싱하여 데이터 읽어보기 (0) | 2014.11.25 |
---|---|
[JAVA 샘플] 트위터 앱생성 + twitter4j를 이용하여 타임라인(Timeline) 목록 출력하기 (3) | 2014.11.20 |
자바 zxing를 이용하여 QR코드 생성 + 색상코드(hex,rgb,안드로이드그래픽색상) 적용법 (2) | 2014.10.16 |
자바 다운로드 유틸을 만들어서 웹서버에 등록되있는 파일을 다운로드 하자 (5) | 2014.10.07 |
자바 POI를 이용한 엑셀(xls,xlsx)에 들어있는 데이터들 읽어오기 (8) | 2014.10.07 |