首先給出通過OLE創建的一些主要代碼步進行簡單說明:
創建OLE對象:
Var olecon: TOleContainer;
Olecon:= TOleContainer.Create(self);
Olecon.oleobject:= Olecon.CreateObject('Excel.sheet',false);
或選擇導入一個Excel文件來創建OLE對象:
Olecon.oleobject:= Olecon.CreateObjectFromFile(xlsname,false);
最好隱藏Excel的幾個工具條,這樣就好象是嵌在你的程序中的一個表而已了:
Olecon.OleObject.application.CommandBars['Standard'].Visible:=false;
Olecon.OleObject.application.CommandBars['Formatting'].Visible:=false;
Olecon.OleObject.application.CommandBars['RevIEwing'].Visible:=false;
然後顯示並激活Excel表,對TOleContainer定義的對象:
Olecon.show;
Olecon.doverb(0);
這樣基本可以了,但TOleContainer有個不好的地方,就是當你一點擊其它控件是就它就失去焦點,然後就自動退出,其實並沒有真的退出,只是需要你再次激活它而已,關鍵是當它失去焦點的時候就excel對象就不見了,可以用Timage控件把TOleContainer所在的地方有Excel時候的區域圖片截下來騙騙用戶,我們這裡主要不是講這個,就不詳述了。
下面我們就開始講Excel_TLB中的接口的常用屬性和方法,主要是針對導出和設定報表格式的一些接口元素。
單元格的讀寫屬性:
olecon.OleObject.application.cells.item[1,1];
olecon.OleObject.application.cells(1,1);
olecon.OleObject.application.cells[1,1].Value;
上面三種都可以對工作表的‘A1’單元進行讀寫。
自己的程序中選定區域賦給Range:
Var range,sheet:Variant;
Range:= olecon.OleObject.application.Range['A1:C3'];
或者:
Sheet:= olecon.OleObject.application.Activesheet;
Range:= olecon.OleObject.application.Range[sheet.cells[1,1],sheet.cells[3,3]];
對上面的Range合並單元格:
Range.merge;
Range. FormulaR1C1:=’合並區’;//合並後寫入文本
注意以後要讀合並的單元格裡面的文本就是讀合並區域的左上角的那個單元格的文本
在Excel表中選定區域賦給range:
range:=Excel_grid1.OleObject.application.selection;
拆分單元格: