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

C++빌더 Q&A
C++Builder Programming Q&A
[50625] Re:Re:Re:Re:Re:엑셀 다시 질문이요..
장성호 [nasilso] 1358 읽음    2007-09-20 11:31
아직도 질문의 목적을 제대로 이해 못했습니다.
SaveDialog를 쓰지 않고 저장하려는 것인지요?


1. 아래와같이 파일명을 만드시면 됩니다.

Edit1->Text = "오리";
Edit2->Text = "추석";

String sFullName;
String sFName="test.xls";


sFullName="C:\\0920\\"+Edit1->Text +"\\"+Edit2->Text+"\\"+ sFName;

2. 폴더가 존재하지 않을 수 있으니 미리 만들어야 겠지요

ForceDirectories(ExtraceFilePath(sFullName));
이렇게 하면 모든경로를 만들어 줍니다.
있으면 그냥 넘어가고...


3. SaveDialog1->FileName 에서 경로를 뺀 filename만 빼낼려면?
String sfname = ExtraceFileName(SaveDialog1->FileName );



그럼..


아자! 님이 쓰신 글 :
: 밑에 장성호님이 쓰신데로 하니까 오류가 생기는데요.
:
: 질문을 다시 설명하겠습니다.
:
: FORM에서 EDIT 창으로 폴더이름을 입력 받습니다.

: 폴더 이름 1 : 오리
: 폴더 이름 2 : 추석
:
: 이렇게 입력을 받고 저장 버튼을 누르면 C\오리\추석\파일이름.XLS  이런식으로 저장이 되는겁니다.
:
: 이렇게 하고 싶은데 현재는 저장 버튼을 누르고 나서 폴더를 생성하고 원하는 경로를 선택하게 되어있는거죠.
:
:
:
: 장성호 님이 쓰신 글 :
: : 질문을 잘 이해못했습니다.
: : 잘 코딩하신것 같은데...
: :
: :
: : 얼핏 질문하신 목적이 아래와 같은것 아닌가 하여 적어봅니다.
: :
: : if( SaveDialog1->Execute() ) // 저장을 원하는 Folder와 파일이름 결정
: : {    
: :      //Excel저장 루틴
: :      ....
: :     ExcelWorksheet1->SaveAs((WideString)(SaveDialog1->FileName));
: :     ....
: : }
: :
: :
: : 그러니까 Execute()함수의 결과가 true이면 저장루틴을....
: :
: : 질문의 목적에 맞는 답변인지요...
: :
: :
: : 그럼.
: :
: :
: : 아자! 님이 쓰신 글 :
: : : 좋은 정보로 무사히 저장을 했습니다.
: : : 그런데 저장할 경로를 선택할수는 있는데
: : : 만약 저장할때 지정된 폴더에 저장하려면 어떻게 해야 하나요?
: : :
: : : 예를 들면 메모리에서 데이타를 읽어 그 값들을 엑셀에 저장하려고 하는데
: : :
: : : 날짜를 입력하세요 0920
: : : 이름을 입력하세요 아자
: : :
: : : 이런후에 c/0920/아자/안에 파일이름을 저장하고 싶습니다.
: : : =================================================================================================
: : :      ExcelApplication1->Connect();
: : :      ExcelApplication1->set_Visible(0, false); // true 화면에 보임, false 화면에 보이지 않음
: : :
: : :      ExcelWorkbook1->ConnectTo(ExcelApplication1->Workbooks->Add());
: : :
: : :      //첫번째 워크시트와 연결
: : :      ExcelWorksheet1->ConnectTo(ExcelApplication1->Worksheets->get_Item((TVariant)1));
: : :
: : :      //워크시트의 이름
: : :      ExcelWorksheet1->set_Name(strTitle);
: : :      ExcelWorksheet1->Cells->set_Item((TVariant)1,(TVariant)"A",(TVariant)"VERSION : ") ; //버젼
: : :      ExcelWorksheet1->Cells->set_Item((TVariant)2,(TVariant)"A",(TVariant)"S/N : ") ; //시리얼 넘버
: : :      ExcelWorksheet1->Cells->set_Item((TVariant)3,(TVariant)"A",(TVariant)"DATE : ") ; //날짜
: : :      ExcelWorksheet1->Cells->set_Item((TVariant)4,(TVariant)"A",(TVariant)"TIME   P[mbar]  T[C]  STATE") ; //
: : :      ExcelWorksheet1->Cells->set_Item((TVariant)5,(TVariant)"A",(TVariant)"Test 2B") ;   //TIME
: : :      ExcelWorksheet1->Cells->set_Item((TVariant)5,(TVariant)"B",(TVariant)"Test 2B");   //data1
: : :      ExcelWorksheet1->Cells->set_Item((TVariant)5,(TVariant)"C",(TVariant)"Test 2B");   // data2
: : :      ExcelWorksheet1->Cells->set_Item((TVariant)5,(TVariant)"D",(TVariant)"Test 2B");   // data3
: : :
: : :      ExcelWorksheet1->Activate();
: : :
: : :      ExcelWorksheet1->SaveAs((WideString)(SaveDialog1->FileName));
: : :
: : :
: : :      //Excel 프로그램 종료
: : :      ExcelApplication1->Disconnect();
: : :      ExcelWorksheet1->Disconnect();
: : :      ExcelWorkbook1->Disconnect();
: : :
: : : =================================================================================================
: : : 현재 이렇게 하니까 폴더를 입력받지 않고
: : : 장성호 님이 쓰신 글 :
: : : : 음....
: : : :
: : : : OleContainer 보다
: : : : OLE를 직접코딩해서 쓰심이 좋을것 같습니다.
: : : :
: : : : 그리고 화면에 보여주는 것은 Excel 프로그램 자체를 Form위에 올려도 되지만
: : : : 엑셀 파일의 데이타를 읽어서 TStringGrid 같은데 보여주는것을 권합니다.
: : : :
: : : : 아래 키워드로 여기 Q&A에서 검색해
: : : :
: : : : ExcelApplication 
: : : : ExcelWorksheet
: : : : ExcelWorkbook
: : : :
: : : : Variant
: : : : 엑셀
: : : : CreateObject
: : : : OlePropertyGet
: : : : OleProcedure
: : : :
: : : :
: : : : 그럼 ...
: : : :
: : : :
: : : :
: : : : 아자 님이 쓰신 글 :
: : : : : 엑셀파일을 열어서 보여주는걸 하려고 이것저것 찾다가
: : : : :
: : : : : OleContainer1 를 이용하면 된다고 나와 있어서
: : : : :
: : : : :   OpenDialog1->Execute();
: : : : :
: : : : :   OleContainer1->CreateObjectFromFile("C:\\Test.xls",false);
: : : : :
: : : : : 이렇게 사용했습니다.
: : : : :
: : : : : 저장된 엑셀파일을 선택해서  그안에 데이터 시트를 보여주고 싶은데 이렇게 하니까
: : : : :
: : : : : 에러가 납니다.
: : : : :
: : : : : ㅇㅔ러 메세지는   OleContainer1 를 잘못사용햇다고 나오면서 그뒤로 다운되버립니다~
: : : : :
: : : : : 도움 부탁드려요

+ -

관련 글 리스트
50563 엑셀 다시 질문이요.. 아자 1451 2007/09/14
50602     Re:엑셀 다시 질문이요.. 장성호 1428 2007/09/18
50620         Re:Re:엑셀 다시 질문이요.. 아자! 1463 2007/09/20
50622             Re:Re:Re:엑셀 다시 질문이요.. 장성호 1334 2007/09/20
50624                 Re:Re:Re:Re:엑셀 다시 질문이요.. 아자! 1502 2007/09/20
50625                     Re:Re:Re:Re:Re:엑셀 다시 질문이요.. 장성호 1358 2007/09/20
50626                         Re:Re:Re:Re:Re:Re:엑셀 다시 질문이요.. 아자! 1417 2007/09/20
50627                             Re:Re:Re:Re:Re:Re:Re:엑셀 다시 질문이요.. 장성호 1298 2007/09/20
50628                                 Re:Re:Re:Re:Re:Re:Re:Re:엑셀 다시 질문이요.. 아자! 1584 2007/09/20
50619         Re:Re:엑셀 다시 질문이요.. 아자! 1208 2007/09/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.