|
Excel 파일에 연결해서 지정 된 worksheet에 데이터를 저장을 하려고 합니다.
일반적인 연결/저장은 TExcelApplication을 써서 가능하였습니다. 그런데 아시다시피
Excel은 default로 3개의 Worksheet를 제공하는데, 만약 하나를 '추가'하려고 하면 어떻게
해야 하는지요? 그리고 기존의 Worksheet를 '지우는 것'은 또 어떻게 하는지 모르겠군요.
TExcelApplication, TExcelWorkbooks, TExcelWorksheet의 함수 중에 분명히 답이 있을 것 같아
이것 저것 시도를 해 봤는데 좀처럼 해결의 기미가 보이지 않습니다. 고수님들 중에서 이 부분에
답을 가지고 계신 분은 꼭 도와 주십시요.
다음은 제가 테스트하고 있는 소스 코드입니다.
void __fastcall TForm1::Button2Click(TObject *Sender)
{
SaveDialog1->Execute();
WideString strFileName = ExtractFileName(SaveDialog1->FileName);
WideString strFilePath = ExtractFilePath(SaveDialog1->FileName);
WideString strFileExt = ExtractFileExt(SaveDialog1->FileName);
ExcelApplication1->Connect();
ExcelApplication1->set_Visible(0,false);
ExcelApplication1->set_DisplayAlerts(TDefLCID(), false);
ExcelWorkbook1->ConnectTo(ExcelApplication1->Workbooks->Add());
int iWS = 1;
ExcelWorksheet1->ConnectTo(ExcelApplication1->Worksheets->get_Item((TVariant)iWS));
frmWSName = new TfrmWSName(Application);
int ReturnCode = frmWSName->ShowModal();
AnsiString strSheetName;
if(ReturnCode == mrOk) strSheetName = frmWSName->edtWSName->Text;
WideString vSheetName = strSheetName;
ExcelWorksheet1->set_Name(vSheetName);
delete frmWSName;
ExcelWorksheet1->Cells->set_Item((TVariant)1,(TVariant)"A",(TVariant)Edit1->Text) ;
ExcelWorksheet1->Activate();
ExcelWorksheet1->SaveAs((WideString)(SaveDialog1->FileName));
ExcelApplication1->Disconnect();
ExcelWorksheet1->Disconnect();
ExcelWorkbook1->Disconnect();
}
|