|
심한 가뭄에 단비가 내리듯 정말 감사합니다......
씨빌더경우에 자료찾기가 매우 어렵군요.......
저는 보통 델파이 자료를 찾은뒤에 컨버팅하는 방식을 많이 사용합니다.(얼마나 자료가 없어면)
박지훈.임프 님이 쓰신 글 :
: 정재만 님이 쓰신 글 :
: : 델파이에서 나온 예제대로 하니 컴파일 에러가 나네요
: : 누가좀 가르쳐 주세요,.,
: :
:
:
: 임펠리테리입니다.
:
: C++Builder 4 언리시드에 보시면 챕터15가 엑셀에 대한 내용이며, 아주 친절하고 자세히 설명되어 있습니다. 원서지만 사보시는 것이 좋겠구요. 이 챕터에 있는 예제 중 세번째 것이 엑셀로 데이터를 보내는 것입니다. 스트링그리드에서 읽어서 보내는, 원하시는 그대로는 아닙니다만 약간만 응용하시면 금방 고치실 수 있을 겁니다.
:
: //헤더파일입니다
: //---------------------------------------------------------------------------
: #ifndef MainH
: #define MainH
: //---------------------------------------------------------------------------
: #include <Classes.hpp>
: #include <Controls.hpp>
: #include <StdCtrls.hpp>
: #include <Forms.hpp>
: //---------------------------------------------------------------------------
: class TForm1 : public TForm
: {
: __published: // IDE-managed Components
: TButton *Button1;
: void __fastcall Button1Click(TObject *Sender);
: void __fastcall FormDestroy(TObject *Sender);
: private: // User declarations
: TCOM_Application m_XLApp; // Excel's Application Object
: WorksheetPtr m_Worksheet; // A Worksheet object
: RangePtr m_Cells; // A Range object of Cells
: RangePtr m_Columns; // A Range object of Columns
:
: void InsertData();
: void ChangeColumns();
: void HandleRange();
: public: // User declarations
: __fastcall TForm1(TComponent* Owner);
: };
: //---------------------------------------------------------------------------
: extern PACKAGE TForm1 *Form1;
: //---------------------------------------------------------------------------
: #endif
:
:
:
: // cpp 파일입니다.
: //---------------------------------------------------------------------------
: #include <vcl.h>
: #include "Excel_TLB.h"
: #pragma hdrstop
:
: #include "main.h"
: #include <graphics.hpp>
:
: //---------------------------------------------------------------------------
: #pragma package(smart_init)
: #pragma resource "*.dfm"
: TForm1 *Form1;
: //---------------------------------------------------------------------------
: __fastcall TForm1::TForm1(TComponent* Owner)
: : TForm(Owner)
: {
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: // Create/Launch EXCEL
: if (!m_XLApp)
: m_XLApp = CoApplication_::Create();
: // Make EXCEL visible
: m_XLApp->set_Visible(0, true);
: // Add a Worksheet
: m_XLApp->Workbooks->Add(xlWBATWorksheet);
: // Get the newly added Worksheet object
: m_Worksheet = m_XLApp->Workbooks->get_Item(1)->Worksheets->get_Item(1);
: // Set it's name to "C++Builder Data";
: m_Worksheet->Name = WideString("C++Builder Data");
: // Call routines to insert Data
: InsertData();
: HandleRange();
: ChangeColumns();
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::FormDestroy(TObject *Sender)
: {
: if (m_XLApp)
: {
: m_XLApp->set_DisplayAlerts(0, false);
: m_XLApp->Quit();
: }
: }
: //---------------------------------------------------------------------------
: void TForm1::InsertData()
: {
: int i;
: for (i=1; i<=10; i++)
: m_Worksheet->Cells->set__Default(i, 1, i);
: m_Worksheet->Cells->set__Default(i, 1, "=SUM(A1:A10)");
: }
:
: void TForm1::HandleRange()
: {
: RangePtr range = m_Worksheet->get_Range("C1:F25");
: range->Formula = "=RAND()";
: range->Columns->Interior->ColorIndex = 3;
: range->Borders->LineStyle = xlContinuous;
: }
:
: void TForm1::ChangeColumns()
: {
: // Get interface to first column
: RangePtr firstCol = m_Worksheet->Columns->get__Default(1);
: firstCol->ColumnWidth = 20; // Set width
: firstCol->Font->Bold = true; // Set BOLD font
: firstCol->Font->Italic = true; // Enable Italic
: firstCol->Font->Color = clBlue; // Tweak color
: }
:
: 주의할 점: 만약 사용하시는 빌더의 버전이 4나 3라면, 직접 엑셀 ActiveX를 임포트해야만 합니다. 빌더 5에서는 기본적으로 임포트되어 있습니다.
:
: 그럼 참고하시길...
|