|
Happy 님이 쓰신 글 :
: 한 3일을 엑셀관련해서 계속 삽질만하고있네요... 정말 너무 어렵네요 ㅠ.ㅠ
:
: 얼마전 초짜님과 시간한줌님의 답변으로 노력은 해보고 있는데...
: 전혀 되지가 않는군요...
:
:
: 먼저 저의 경우를 설명드리겠습니다.
:
: A와 B라는 테이블이 있습니다.
: 즉 테이블 이름은 유동적입니다.
:
: 예를 들어 A 테이블에는...
:
: Table A
: -----------------------------------------
: No Name Addr -> 테이블 마다 유동적임
: ----------------------------------------
: 1 홍길동 부산
: 2 아무개 서울
: -----------------------------------------
:
: B라는 테이블은
: ----------------------------------------
: No Tel Hobby Addr Name
: ----------------------------------------
: 1 123-4567 영화감상 부산 홍길동
: 2 333-4433 음악감상 서울 아무개
: 3 .................................
: 4 .................................
:
: ----------------------------------------
:
: 이런식으로 필드이름이 다른 여러 테이블이 있습니다.
:
: 이것을 Memo1에 SQL문을 입력해서 조회해 오는겁니다
:
: 즉 Select * from A 가올수도 있고 Select * from B가 올수도 있는겁니다.
:
: 이런경우 그리드에 뿌려지는게 다릅니다.
:
: 이런 유동적인것을 CSV나 엑셀형식으로 보내고 싶은데...
: 여러 게시물을 아무리 검색해보고 질문해봐도 잘안되는군요...
:
: 어떻게 해결하는 방법없을까요??
: 그리드의 가로수와 세로수를 가져와서 해봤는데도 한줄이상 넘어가지가 않습니다ㅠ.ㅠ
:
:
:
: 일단 저의 소스를 올려보겠습니다
: 버튼을 클릭하면 유동적으로 그리드에 뿌려지는 것까지와 XML포멧으로 저장하는것 까지는 완료된 상태입니다.
:
:
: void __fastcall TForm2::ToolButton11Click(TObject *Sender)
: {
: //쿼리한 결과를 그리드에 출력...
: ADOQuery2->Close();
: ADOQuery2->SQL->Clear();
: ADOQuery2->SQL->Add(Memo1->Lines->Text);
: ADOQuery2->Open();
: ADOQuery2->Active=false;
: ADOQuery2->Active=true;
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm2::XMLX1Click(TObject *Sender)
: {
: // 그리드의 내용을 XML형식으로 저장...
: if(SaveDialog2->Execute()) {
: ADOQuery2->SaveToFile(SaveDialog2->FileName,pfXML);
: }
:
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm2::Button1Click(TObject *Sender)
: {
: // 그리드를 엑셀이나 CSV형태로 저장...
: //////////////////////////////////////////////////////
: // ???????????????????????????????????????????????
:
:
:
: }
: //---------------------------------------------------------------------------
:
: 버튼1을 클릭했을때 CSV나 엑셀형식으로 저장하고픈데....
: 여러 고수님들 해결좀 해주세요 ㅠ.ㅠ
:
: 빌더를 처음 접해서인지...
:
: 좀처럼 안되는군요.....
:
:
:
폼에다가 리스트 박스를 하나 만듭니다.
ADOConnection1->GetFieldNames("A", List1->Items);
이렇게 하면 테이블 A에 있는 필드들이 쭉 나열되겠죠?
그런 다음에 시간한줌님이 가르쳐주신대로 돌리기만 하면 됩니다.
그리드를 바로 엑셀로 바꾸는것은 제가 잘 모르는거고... 그냥 위에처럼 꽁수를 써서 돌리면 될꺼 같은데..
님에 소스에는 DBGrid에서 파일로 만들려고 하는 흔적조차 안보이네요..
우선 해보신 소스를 올리시는게 좋을꺼 같습니다.
참고사항: Xls파일은 txt파일 만드시면서 단어 중간중간에 Tab으로 자리를 띄우시면 엑셀 파일이 되는거구요..
Csv파일은 ,로 구분하시면 됩니다. 다 아시는거죠? ^^;;;
그럼 수고하시길..
|