|
void __fastcall TFormMain::Button1Click(TObject *Sender)
{
WideString strTitle = "Excel Test";
WideString strFile = "C:\\test.xls";
WideString FileName;
ExcelApplication1->Connect();
// true 화면에 보임, false 화면에 보이지 않음
ExcelApplication1->set_Visible(0,true);
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)Edit20->Text) ;
ExcelWorksheet1->Cells->set_Item((TVariant)1,(TVariant)"B",(TVariant)Edit30->Text) ;
ExcelWorksheet1->Cells->set_Item((TVariant)1,(TVariant)"C",(TVariant)Edit40->Text) ;
ExcelWorksheet1->Cells->set_Item((TVariant)1,(TVariant)"D",(TVariant)Edit50->Text) ;
ExcelWorksheet1->Cells->set_Item((TVariant)1,(TVariant)"E",(TVariant)Edit60->Text) ;
ExcelWorksheet1->Cells->set_Item((TVariant)2,(TVariant)"A",(TVariant)Edit19->Text) ;
ExcelWorksheet1->Cells->set_Item((TVariant)2,(TVariant)"B",(TVariant)Edit29->Text) ;
ExcelWorksheet1->Cells->set_Item((TVariant)2,(TVariant)"C",(TVariant)Edit39->Text) ;
ExcelWorksheet1->Cells->set_Item((TVariant)2,(TVariant)"D",(TVariant)Edit49->Text) ;
ExcelWorksheet1->Cells->set_Item((TVariant)2,(TVariant)"E",(TVariant)Edit59->Text) ;
ExcelWorksheet1->Activate();
//ExcelApplication1->Save((TVariant)"C:\\Source\\Test2\\Test1.xls");
ExcelWorksheet1->SaveAs(strFile);
ExcelApplication1->Disconnect();
ExcelWorksheet1->Disconnect();
ExcelWorkbook1->Disconnect();
}
이렇게 했습니다.
데이터 잘 들어갑니다.
그런데, 현재 이 방법은 버튼을 클릭하면, 엑셀이 실행되고, 각 cell에 데이터를 넣고, 저장을 해주는 형식이잖아요.
제가 하고 싶은건, 버튼을 클릭하면 FileSaveAs 다이얼로그(맞나?)가 뜨고, 거기서 제가 원하는대로 파일명을 입력해서 (이렇게 되면 임의의 디렉토리 선택도 가능하겠죠?) xls 확장자로 저장을 하고 싶습니다.
컴퓨터가 느려서 그런지, 지금 방식대로 하면, 엑셀 띄우는데 너무 오랜 시간이 걸리네요.
그리고 'text.xls 파일이 있습니다. 이 파일을 변경하겠습니까?' 라는 팝업도 계속 뜨네요.
데이터를 덮어쓰지 않고, 각각의 파일 이름으로 저장을 하고 싶은데..(1.xls, 2.xls, 3.xls, ... 이런식으로요..)
도와주세요 슬님~~
|