FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird Q&A
[2140] Re:엑셀데이타을 불새로 옮기는 방법...ㅠㅠ
네박자 [] 2758 읽음    2006-08-16 11:03
다반 님이 쓰신 글 :
: 초보자 입니다.
: 엑셀데이타를 테이블안으로 옮기려 하는데 여러가지 방법이 있으시면 알려 주십시요... 부탁드립니다.

엑셀데이터를 DB로 옮기는 방법은 여러가지가 있습니다.

1) 엑셀에서 조작해서 옮기는 방법
엑셀과 editplus 와 같은 툴을 사용해서 옮기는 방법입니다. 어플을 만들지 않아도 된다는 장점이 있습니다.
1. 엑셀로 편집한 화일을 셀과 필드의 갯수가 맞게 정렬한다.
2. 제일 앞 셀에는 Insert into Table values ( 를 제일 마지막 셀에는 ); 를 넣는다.
3. ); 다음 셀에는 줄바꿈 구분자로 & 를 사용하였다.(한줄 길게 세로로 삽입한다.)
4. 제어판 -> 국가별설정 -> 숫자 에서 구분기호를 ^ 로 바꾸었다.
5. 엑셀에서 csv 화일로 저장한다. 그러면 구분자가 ^ 로 저장이 된다.
6. 에디트플러스에서 csv화일을 불러와서 정렬한다.
이때, 영문자나 긴공백앞에서 임의로 줄바꿈이 되는 경우가 있다. 이것은 수동으로 갖다 붙여 줘야 한다.
7. 에디트플러스에서 & 를 \n (줄바꿈)으로 치환한다.
8. input 과 같은 명령어로 집어 넣던지..데이타가 많으면 loop 로 돌려서 집어 넣는다.
(insert into ... 처럼 된 일반 쿼리 문이므로 그대로 실행만 하면 됩니다.)

2) DbGird 와 같은 Gird 로 불러서 옮기는 방법
툴을 한번 만들어 두면 위에꺼 보다 편한 방법입니다.
Gird 로 해당 데이타를 불러 오고(다른건 잘모르겠고 TMS Gird는 기본적으로 지원하더군요)
Gird에 있는 데이터를 Db에 집어 넣는 어플을 만들어서 집어 넣는다.

3) Grid를 거치지 않고 바로 DB 입력
아직까지 이렇게는 안해 봤습니다. 엑셀데이타가 많고 일정한 형식외에 특수문자나 예상하지 못한 공백이 있다면
시행착오가 많은 방법입니다. 물론 어플을 만들어서 입력해야 겠구요..

대충 저는 위에 1) 2) 이 두가지 방법으로 많이 하는데 blob 와 같은 type 으로 몇십라인씩 들어 있는 텍스트문들이 항상 골치 더군요. 줄바꿈 이나 특수문자 때문에 필드가 안맞거나 원본대로 입력되지 않는 경우가 종종 발생합니다.
10만건 가까이 된 엑셀데이타를 집어 넣기 위해서 밤을 샌적도 있구요. 결론은 자꾸 하다보면 된다는 겁니다...

+ -

관련 글 리스트
2134 엑셀데이타을 불새로 옮기는 방법...ㅠㅠ 다반 1292 2006/08/06
2140     Re:엑셀데이타을 불새로 옮기는 방법...ㅠㅠ 네박자 2758 2006/08/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.