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
[50693] Re:Re:Re:Re:엑셀파일로 저장후 취소 버튼 누를시에 문제점. 질문 하나 더할게요
아자 [] 1582 읽음    2007-10-01 08:15
답변 고맙습니다.

그럼 그 부분을 처리할 방법은 없는건가요?

헤이즐넛 님이 쓰신 글 :
: 엑셀 파일 저장 부분은 문제가 없는 것 같습니다.
:
: BOOK1 은 아마도 이전 작업(컴파일)시에 제대로 저장되지 않고, 메모리상에 떠 있던 엑셀 파일일 것 같네요.
: 프로그램 오류로 중단되는 경우에 메모리 상에 엑셀 프로세스가 떠 있습니다.
: 이런 경우, CTRL-ALT-DEL 눌러서 프로세스에 보면 EXCEL.EXE가 보입니다.
:
: 저도 엑셀 입출력 코딩 초기에는 이런 경우 많이 당했습니다.
:
: 아자 님이 쓰신 글 :
: : 헤이즐넛님 답변 고맙습니다.
: :
: : 질문하나 더 할게요.
: :
: : 저장 버튼을 누르고 TEST.XLS 로 저장하였습니다.
: : 다시 저장버튼을 누르고 TEST1.XLS 로 저장
: : 저장버튼 -> 취소
: : "BOOK1을 저장하겠습니까?" 라는 팝업창이 떠서 취소를 누른후
: : 저장버튼 -> 취소
: : "BOOK1을 저장하겠습니까?" 라는 팝업창이 떠서 취소를 누른후
: :
: : 저장된 TEST.XLS 파일을 열면 BOOK1.XLS 파일도 함께 열립니다.
: :
: : 왜이렇게 되는거죠??
: :    if (SaveDialog1->Execute())
: :       {
: :             ExcelWorksheet1->SaveAs((WideString)(SaveDialog1->FileName));
: :       }
: :
: : 그 부분에 대해 이런식으로 처리해준게 틀린건가요?
: :
: : 답변 부탁드리겠습니다.
: :
: : 헤이즐넛 님이 쓰신 글 :
: : : 1. 다이알로그 박스에 엑셀 형식을 표시하고 싶으면 SaveDialog1->Execute() 실행전에 아래를 추가해 주세요.
: : :   SaveDialog1->Filter = "Excel data file (*.xls)|*.xls";
: : :   SaveDialog1->FileName = "*.xls";
: : :
: : : 2. 엑셀의 D5 셀에 set_item()을 사용해 데이터를 쓰려면. 셀의 위치를
: : : (TVariant)5,(TVariant)"D" 가 아니라
: : : => (TVariant)4,(TVariant)5 을 사용하세요. (4번째 column, 5번째 row)
: : : 즉, ExcelWorksheet1->Cells->set_Item((TVariant)4,(TVariant)5,(TVariant)Form1->EditFpmax1->Text); 
: : : 입니다.
: : :
: : : 아자 님이 쓰신 글 :
: : : : 첫번째 질문 저장 버튼을 눌렀을때 첨부한 파일과 같이 뜹니다.
: : : : 그런데 파일형식에 엑셀이라고 표현해주고 싶은데 그부분을 어떻게 해야할지 모르겠습니다.
: : : : 밑에 소스처럼 했는데 실행파일을 끄고 나면
: : : : "book4의 변경된 내용을 저장하시겠습니까? "라는 메세지가 뜹니다.
: : : : 이런 부분을 해결하기 위해서    if (SaveDialog1->Execute())
: : : : 이 조건을 썻는데 이게 잘못 쓴건지 궁금합니다.
: : : :
: : : : 두번째 질문은
: : : :    ExcelWorksheet1->Cells->set_Item((TVariant)5,(TVariant)"D",(TVariant)Form1->EditFpmax1->Text);  
: : : :      ExcelWorksheet1->Cells->set_Item((TVariant)5,(TVariant)"E",(TVariant)Form1->EditFtmax1->Text);  
: : : :      ExcelWorksheet1->Cells->set_Item((TVariant)5,(TVariant)"F",(TVariant)Form1->EditState->Text);  
: : : :
: : : : 이것처럼 데이터를 엑셀파일 시트 5에 d , e, f 에 데이터를 입력하는데
: : : : 한번만 입력하고 맙니다.
: : : : 이 데이터를 실시간으로 입력하고 싶습니다.
: : : :
: : : : 답변 부탁드리겠습니다.
: : : :
: : : : ===============================================================================
: : : :   TVariant  strTitle;
: : : :
: : : :      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)1,(TVariant)"B",(TVariant) Form1->StatusBar1->Panels->Items[1]->Text) ; //버젼
: : : :
: : : :      ExcelWorksheet1->Cells->set_Item((TVariant)2,(TVariant)"A",(TVariant)"일련 번호 : ") ; //시리얼 넘버
: : : :      ExcelWorksheet1->Cells->set_Item((TVariant)2,(TVariant)"B",(TVariant)Form1->EditSerial1->Text) ; //시리얼 넘버
: : : :
: : : :      ExcelWorksheet1->Cells->set_Item((TVariant)3,(TVariant)"A",(TVariant)"DATE : ") ; //날짜
: : : :      ExcelWorksheet1->Cells->set_Item((TVariant)3,(TVariant)"B",(TVariant)Form1->EditYear->Text) ; //year
: : : :      ExcelWorksheet1->Cells->set_Item((TVariant)3,(TVariant)"C",(TVariant)Form1->EditMonth->Text) ; //month
: : : :      ExcelWorksheet1->Cells->set_Item((TVariant)3,(TVariant)"D",(TVariant)Form1->EditDate->Text) ; //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)Form1->EditHour->Text);   //TIME
: : : :      ExcelWorksheet1->Cells->set_Item((TVariant)5,(TVariant)"B",(TVariant)Form1->EditMinute->Text);   //TIME
: : : :      ExcelWorksheet1->Cells->set_Item((TVariant)5,(TVariant)"C",(TVariant)Form1->EditSecond->Text);   //TIME
: : : :    
: : : :     ExcelWorksheet1->Cells->set_Item((TVariant)5,(TVariant)"D",(TVariant)Form1->EditFpmax1->Text);   //압력
: : : :      ExcelWorksheet1->Cells->set_Item((TVariant)5,(TVariant)"E",(TVariant)Form1->EditFtmax1->Text);   // 온도
: : : :      ExcelWorksheet1->Cells->set_Item((TVariant)5,(TVariant)"F",(TVariant)Form1->EditState->Text);   // STATE
: : : :
: : : :
: : : :      ExcelWorksheet1->Activate();
: : : :
: : : :     
: : : :      if (SaveDialog1->Execute())
: : : :      {
: : : :            ExcelWorksheet1->SaveAs((WideString)(SaveDialog1->FileName));
: : : :      }
: : : :      //Excel 프로그램 종료
: : : :      ExcelApplication1->Disconnect();
: : : :      ExcelWorksheet1->Disconnect();
: : : :      ExcelWorkbook1->Disconnect();
: : : : ==============================================================================

+ -

관련 글 리스트
50648 엑셀파일로 저장후 취소 버튼 누를시에 문제점. 아자 1587 2007/09/27
50651     Re:엑셀파일로 저장후 취소 버튼 누를시에 문제점. 헤이즐넛 1586 2007/09/27
50653         Re:Re:엑셀파일로 저장후 취소 버튼 누를시에 문제점. 질문 하나 더할게요 아자 2005 2007/09/27
50677             Re:Re:Re:엑셀파일로 저장후 취소 버튼 누를시에 문제점. 질문 하나 더할게요 헤이즐넛 1848 2007/09/28
50693                 Re:Re:Re:Re:엑셀파일로 저장후 취소 버튼 누를시에 문제점. 질문 하나 더할게요 아자 1582 2007/10/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.