|
헤이즐넛님 답변 고맙습니다.
질문하나 더 할게요.
저장 버튼을 누르고 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();
: : ==============================================================================
|