|
엑셀 파일 저장 부분은 문제가 없는 것 같습니다.
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();
: : : ==============================================================================
|