|
원영준 님이 쓰신 글 :
: void __fastcall TMDIChild1::SpeedButton2Click(TObject *Sender)
: {
: Variant xl, sheet;
: ////////////////////////////////////////////////////////////////////////////
: //
: // XLS 실행
: ////////////////////////////////////////////////////////////////////////////
: xl = CreateOleObject("Excel.Application");
:
: xl.OlePropertySet("Visible", True);
: sheet = xl.OlePropertyGet("WorkBooks").OlePropertyGet("WorkSheets").OlePropertyGet("Sheet1");
:
: sheet.Cells[1,1] = "won";
: sheet.Cells[1,2] = "yeong";
:
: xl = Unassigned;
:
: }
:
: 이렇게 했는데 뭐가 잘못인지 좀 봐주세요i
이강건입니다.
대충보니까 WorkBooks에 ActiveSheets를 얻어오질 않았네요.
즉, 다음과 같이 Workbooks에 Sheets를 붙여준 다음 ActiveSheet를 얻어와야 합니다.
try
{
XLApp = CreateOleObject("Excel.Application");
}
catch(...)
{
ShowMessage("Excel OLE server not found");
return false;
}
XLWorkbooks = XLApp.OlePropertyGet("Workbooks");
XLWorkbook = XLWorkbooks.OleFunction("Add", 1); // 1은 덧붙일 Sheet의 갯수
XLWorksheet = XLWorkbook.OlePropertyGet("ActiveSheet");
위와 같이 Excel을 COM을 이용하여 연 후에,
다음과 같이 Cell에 글을 쓸 수 있겠죠.
XLWorksheet.OlePropertyGet("Cells").OlePropertySet("_Default", Row, Col, Str);
Row, Col은 해당 셀의 위치이고 Str은 쓸 내용입니다.
그럼 도움이 되었기를...
|