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
[50627] Re:Re:Re:Re:Re:Re:Re:엑셀 다시 질문이요..
장성호 [nasilso] 1297 읽음    2007-09-20 12:12
1. File관련 함수는?
SysUtils.hpp 에 선언되어있습니다.
include하시면 됩니다.

2. prtc->hour이 뭔지 모르겠지만
ExcelWorksheet1->Cells->set_Item((TVariant)5,(TVariant)"A",(TVariant)prtc->hour) ;  
이런식으로 하시면 될것입니다.




아자! 님이 쓰신 글 :
: 답변 너무 고맙습니다.
:
: savedialog를 안쓰는건 아니구요 ,
: 저장할 폴더를 미리 생성하려는데 목적이 있습니다.
:
: 폴더를 미리 만들고 만든 폴더안에  test1.xls , test2.xls 이런식으로 저장하고 싶은거구요.
:
: 그러기위해서 저장할 경로를 미리 지정해주는 거죠.
:
: 만약 님이 말하신데로 저장 경로에 원하는 폴더명이 존재하지 않을 경우 미리 생성을 해야 하구요.
:
: 그래서 edit1->text = " 오리 "
:            edit2->text = " 추석 "
:
: 을 입력 받고 저장 버튼을 누르면 c\오리\추석 이라는 지정 위치에 파일이름을 입력하는 창이 뜨게되는거죠.
:
: 이곳에 파일이름을 test.xls 치게 되면 결국 c\오리\추석\test.xls 이렇게 저장이 되는겁니다.
:
:
:     sFullName="C:\\\\"+Edit1->Text +"\\"+Edit2->Text+"\\";
:
:     ForceDirectories(ExtraceFilePath(sFullName));
:     ExtraceFileName(SaveDialog1->FileName );
:
: 이렇게 했는데 현재 ExtraceFilePath , ExtraceFileName 이게 define이 안된다고 나오는데
:
: 이건 어떤 컴포넌트가 되는거죠/..?
:
: 그리고 질문하나 더 드리겟습니다.
:
:   ExcelWorksheet1->Cells->set_Item((TVariant)5,(TVariant)"A",(TVariant)"Test 2B") ;   //TIME
:
: 이걸 보면 엑셀 시트에 Test 2B라고 저장이 됩니다 . Test 2B 처럼 지정한 문자가 아닌
: 다른곳에서 읽어온 데이터를 엑셀에 저장하려면 어떤식으로 해야 하나요?
: Form1->EditHour->Text = prtc->hour;
: 이 부분이 시간을 읽어오는 부분인데 시간을 엑셀 시트에 저장하고 싶다면
: ExcelWorksheet1->Cells->set_Item((TVariant)5,"A",prtc->hour) ;   //TIME
:
: 이런식으로 햇는데 어떻게 해야 하는지요??
:
: 점심 맛있게 드세요^^*
:
: 장성호 님이 쓰신 글 :
: : 아직도 질문의 목적을 제대로 이해 못했습니다.
: : 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:엑셀 다시 질문이요.. 장성호 1297 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.