開發自己的Excell控制項

來源:互聯網
上載者:User
excel|控制項 對於程式員特別是從事資訊管理編程的程式員來說,報表列印是整個編程過程中最麻煩但又必須做的事情,我們常用的方法就是:
一、將資料庫記錄匯出到Excell中;
二、用CrystalReport或ActiveReport等報表工具產生報表檔案然後再在程式中調用;
三、直接列印表單;

對於第一種方法網上有許多文章介紹了怎樣將資料表記錄匯入到Excell中並怎樣控制項Excell儲存格式以便做出合適的報表,但是這種方法也有許多不便之處,一是使用者的電腦上必須安裝Excell,這顯然不現實(當然盜版的另當別論),二是Excell內建的是ActiveX控制項,雖然.Net仍支援ActiveX控制項,但這與.Net的發展趨勢顯然是不相符的。
對於第二種方法網上與CrystalReport或ActiveReport相關的資料很少,而且使用也相當複雜,怎麼製作報表全憑程式員自己摸索。
對於第三種方法除非想證明自己是菜鳥,否則沒有人會使用。

既然如此,我們可不可以利用.Net提供的強大功能自己開發類似於Excell的控制項呢?其實要開發一個控制項只要做兩件事,其一是定義各種屬性和方法,其二是根據各種屬性繪製控制項介面。
下面我們來分析一下Excell的結構,Excell呈現給我們的是一張二維結構的表格,每一行相當於資料表的一個記錄,每一列相當於資料表的欄位。但Excell的每個單元又有許多的格式控制項單元的呈現方式,這就是Excell與別的表格控制項如DataGrid不相同的地方,那麼如何?每個單元都有不同的呈現方式呢?

首先我們可以定義一個類名稱假設為DataCell,這個類定義了各種屬性比如:背景顏色、文本顏色、文本字型、對齊、文本折行、單元寬度、單元高度等等,然後我們定義一個Arraylist對象,名稱假設為DataRow,一個DataRow載入適當數量的DataCell對象,這個DataRow對象就相當於Excell的一行記錄。
第二步我們再定義一個Arraylist對象,名稱假設為DataTable,每個DataTable又載入一定數量的DataRow,那麼這個DataTable對象其實就是一個有一定數量記錄的二維表格了,只是這個表格的單元都有不同的格式。
第三步就是繪製控制項介面了,在這一步我們可以利用Graphics的DrawString、DrawLine、DrawRectangle、強大功能,根據DataCell對象提供的不同格式任意繪製控制項介面了。


相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。