如何利用C++ Builder 4.0 Enterprise實(shí)現(xiàn)對(duì)Excel97 的調(diào)用
更新時(shí)間: 2007-05-22 17:57:05來源: 粵嵌教育瀏覽量:881
我們?cè)谶M(jìn)行數(shù)據(jù)庫軟件的開發(fā)時(shí),一般都要進(jìn)行大量的報(bào)表設(shè)計(jì),雖然我們可以利用Crystal Report 或程序自帶的報(bào)表工具進(jìn)行報(bào)表設(shè)計(jì),但是當(dāng)涉及到要設(shè)計(jì)多重報(bào)表或交叉報(bào)表時(shí)、我們一般都會(huì)感到自己力不從心。有時(shí)雖然想利用Excel作為前臺(tái)報(bào)表,但卻找不到相關(guān)接口只能作罷。其實(shí)我們只要知道Excel的接口結(jié)構(gòu),就能夠方便的實(shí)現(xiàn)對(duì)Excel的調(diào)用。
原理:在Excel 中程序接口一般分為3層 ,分別為:ExelApplication、Excelbook、Excelsheet 其中ExelApplication代表Excel程序,Excelbook代表Excel程序當(dāng)前的工作本,Excelsheet代表Excelbook當(dāng)前激活的表格,因此在啟動(dòng)Excel程序時(shí)要按此序分別啟動(dòng),這樣就能實(shí)現(xiàn)對(duì)Excel報(bào)表的操作。
現(xiàn)舉例為例介紹如下:
一、在Import Type Library中加入 Excel8.olb,在\include 子目錄下生成Excel_TLB.h文件.
二、在BCB4.0中Form1中添加Button1、Button2、Button3、Table1,并存盤為Project1。
三、在Unit1.h中加入頭文件 #include "..\Excel_tlb.h"
在Private中加入
Private:
TCOM_Application Application; file://定義ExcelApplication對(duì)象//
WorksheetPtr Worksheet; // 定義ExcelSheet對(duì)象//
RangePtr FirstCol ; file://定義列對(duì)象//
RangePtr Range file://定義表格操作范圍//
四、在Button1的OnClikc事件中添加如下代碼:
void __fastcall TForm1::Button1Click(TObject *Sender)
{//啟動(dòng)Excel//
const int xlWBatChart = -4109;
const int xlWBatWorksheet = -4167;
if (! Application)
Application = CoApplication_::Create(); file://建立于Excel程序的連接//
Application->set_Visible(0, true);//打開Excel程序//
Application->Workbooks->Add(xlWBATWorksheet);//創(chuàng)建只含有一個(gè)ExcelSheet的ExcelBook//
Worksheet = Application->Workbooks->get_Item(1)->Worksheets->get_Item(1);//取得該表對(duì)象//
Worksheet->Name = WideString("database Date");//建立該表的名稱//
}
五、在Button2的OnClikc事件中添加如下代碼:
void __fastcall TForm1::Button2Click(TObject *Sender)
{//添加數(shù)據(jù)//
int i, j;
Table1->DatabaseName="DBDEMOS";
Table1->TableName="Author.db";
Table1->Open( );
for( i=0;iFieldCount;i++)
Worksheet->Cells->set__Default(1,i,Table1->Fileds->Fileds[i]->FiledName);//在指定的位置加入字段名//
Table1->First();
j=2;
while( !Table1->Eof( ))
{
for( i=0;iFieldCount;i++)
Worksheet->Cells->set__Default(j,i, Table1->Fields->Fileds[i]->AsString);////在指定的位置加入數(shù)據(jù)庫的內(nèi)容//
Table1->Next( );
j++;
}
}
六、在Button3的OnClikc事件中添加如下代碼:
void __fastcall TForm1::Button3Click(TObject *Sender)
{//表格設(shè)置//
Range = m_Worksheet->get_Range("C1:F20");//設(shè)置表格操作范圍//
Range->Font->size=12;//設(shè)置字體大小//
Range->Columns->Interior->ColorIndex = 3;//設(shè)置表格表格顏色//
Range->Borders->LineStyle = xlContinuous;//設(shè)置表格邊框//
FirstCol = m_Worksheet->Columns->get__Default(3 );//取得當(dāng)前表格的第三列對(duì)象//
FirstCol->ColumnWidth = 25; // 設(shè)置對(duì)象寬度//
FirstCol->Font->Bold = true; // 設(shè)置字體屬性為加粗//
FirstCol->Font->Italic = true; file://設(shè)置字體的種類//
FirstCol->Font->Color = clBlue; // 設(shè)置字體的顏色//
}
以上程序在C++ Builder 4.0 Enterprise + Pwin98中實(shí)現(xiàn)。
通過以上程序可以看出,只要我們?cè)诔绦蛑袑?duì)Excel進(jìn)行巧妙的設(shè)置,就能夠設(shè)計(jì)出具有專業(yè)水平的報(bào)表。
粵嵌動(dòng)態(tài)
推薦閱讀
- ·Linux字符設(shè)備驅(qū)動(dòng)框架解析:file_operations的核心作用與實(shí)現(xiàn)
- ·廣東朝歌數(shù)碼科技股份有限公司專場(chǎng)招聘會(huì)
- ·深化產(chǎn)教融合,共筑技能人才培養(yǎng)新生態(tài) —— 廣州華立學(xué)院到訪粵嵌從化校區(qū)為深化產(chǎn)教
- ·校企合作新突破 | 粵嵌科技與三亞學(xué)院共探產(chǎn)教融合新路徑
- ·粵嵌科技入選國(guó)家級(jí)職業(yè)數(shù)字展館聯(lián)合建設(shè)單位,賦能計(jì)算機(jī)程序設(shè)計(jì)員高技能人才培養(yǎng)
- ·嵌入式實(shí)時(shí)操作系統(tǒng)的性能優(yōu)化與實(shí)現(xiàn)路徑
- ·校企攜手賦能教育!粵嵌科技助力海南科技職業(yè)大學(xué)探索 AGI 時(shí)代教學(xué)新范式
- ·嵌入式系統(tǒng)中的低功耗設(shè)計(jì)策略與實(shí)現(xiàn)路徑
- ·深圳市軒宇軟件開發(fā)有限公司專場(chǎng)招聘會(huì)
- ·嵌入式系統(tǒng)中的代碼空間優(yōu)化:策略與實(shí)踐