mysql 을 엑셀파일로 만들고 싶습니다.

plzma의 이미지

자바로 개발중에
mysql 에 있는 정보를 엑셀파일로 변환해야 되는 일이 생겼습니다.
웹에서 버튼을 누르면 DB 에서 select 한 정보나 아니면 테이블 통째로 엑셀파일로 나오게 하려고 합니다.

select * into outfile.. **.csv << 이거를 쓰면 csv 가 한 로우 통째로 한셀에 들어가구요
쿼리 한번으로 셀마다 데이터 하나씩 들어가게 엑셀파일로 변환 할 수 없을까요?

shint의 이미지

phpmyadmin에서 DB 선택 - 내보내기 - CSV 선택 - 필드 구분자 , 로 변경 - 필드 감싸기 제거 - 실행
하시면. 데이터가

데이터1, 데이터2, 데이터3,
데이터4, 데이터5, 데이터6

이런식으로 나옵니다.

//MySql 쿼리를 사용하는 방법 링크 모음
http://blog.naver.com/i_want_don?Redirect=Log&logNo=90063765281
http://wishkjh.blog.me/80018264311
http://hgh73.blog.me/90136194252
http://blog.naver.com/hschoi82?Redirect=Log&logNo=20039179861

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

dgkim의 이미지

알려주신 구문을 실 사용예로 바꾸면 아래와 같습니다.

SELECT * INTO OUTFILE '/tmp/a.tsv' FROM users;

이 경우, '*'로 모든 컬럼이 선택되며, 결과물에서 구분자가 탭문자가 됩니다.

MySQL 레퍼런스에도 나오는데, 아래 구문으로 엑셀에서 인지하는 CSV 형태로 받을 수 있습니다.

  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  LINES TERMINATED BY '\n'

완성해 보면 아래와 같은 쿼리입니다.

SELECT * INTO OUTFILE '/tmp/a.csv'
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\''
  LINES TERMINATED BY '\n'
  FROM users;

추가 확인결과 .csv 파일을 엑셀의 메뉴를 통해 열경우 구분자 지정이 가능한데, .csv 확장자를 가지면서 explorer 기본동작으로 열 경우 한 컬럼으로 나오네요.