利用Excel實(shí)現數據錄入及打印預覽
利用Excel實(shí)現數據錄入及打印預覽(原創(chuàng ))
Excel強大的數據錄入功能極打印預覽功能是其他大多數程序望塵莫及的,能不能在我們自己編的程序中調用Excel的數據錄入功能及預覽功能呢。實(shí)際上,使用Delphi你能完全控制Excel或Word的所有功能。雖然來(lái)自Excel對象層次內部非常復雜,但我們通過(guò)使用Variant(在OLE自動(dòng)化中使用的Delphi的安全數組版本)通??梢院?jiǎn)潔,容易的實(shí)現對Excel的控制。
下面,我將我實(shí)際運用的一些方法介紹給大家:
1.啟動(dòng)Excel
在Uses中加入Comobj;
var
v:Variant;
begin
v:=CreateOleobject(‘Excel.Application’);
v.Visible:=true;
end;
其中,Comobj中包含了用來(lái)檢索OLE的對象和向其傳發(fā)命令的例程,第一行代碼啟動(dòng)Excel,執行后Excel會(huì )在內存中出現,因此第二行代碼使之可見(jiàn)。
2.關(guān)閉Excel
在創(chuàng )建了Excel Application對象后,調用它的Quit方法完成關(guān)閉事件。
If not varIsEmpty(v) then v.quit;
如果需要在關(guān)閉前確定是否存盤(pán),加入:
v.DiaplayAlert:=true; //確定存盤(pán)
v.DiaplayAlert:=false;//不存盤(pán),直接退出
3.加入工作表及對其表格內容的操作
var
Sheet: Variant;
begin
v.workbook.add;
v.Workbooks.Add;
v.Workbooks[1].WorkSheets[1].Name := '數據錄入';
Sheet:= v.Workbooks[1].WorkSheets['數據錄入'];
Sheet.Cells[1,1] :='試驗'; Label1.Caption:=Sheet.Cells[1,1];
End;
Sheet對象是很多頁(yè)的集合,其他的Workbooks是工作薄的集合,WorkSheets對象是工作表的集合,Charts對象是圖表的集合。
4.格式的設置
var
Range: Variant;
begin
Range := v.Workbooks[1].WorkSheets['數據錄入'].Range['A2:M2’]; //單元格從A2到M2 Range.Merge; //合并單元格
Range.Rows.RowHeight := 20; //設置行高
Range.Borders.LineStyle := 1; //加邊框
Range.Columns[2].ColumnWidth := 12; // 設置列寬
Range.FormulaR1C1 := '標題';
Range.HorizontalAlignment := xlCenter; //水平對齊方式
Range.VerticalAlignment := xlCenter; //垂直對齊方式
Range.Characters.Font.Name := '宋體'; //字體
Range.Characters.Font.FontStyle := '加粗';
Range.Characters.Font.Size := 12;
Range.Characters.Font.OutlineFont := False; //是否有下劃線(xiàn)
Range.Characters.Font.ColorIndex := xlAutomatic; //顏色
end;
其他的屬性可以察看MSDN或者其他資料。
5. 打印的設置
var
Sheet: Variant;
begin
Sheet := XLApp1.Workbooks[1].WorkSheets['數據錄入'];
Sheet.PageSetup.PrintTitleRows :='$1:$3'; //頁(yè)眉
Sheet.PageSetup.PrintTitleColumns := '';
Sheet.PageSetup.LeftFooter := ' 注:頁(yè)腳'+' 總共N頁(yè)'+'--第P頁(yè)'; //頁(yè)腳
Sheet.PageSetup.LeftMargin := 30; //設置邊距
Sheet.PageSetup.RightMargin := 30;
Sheet.PageSetup.TopMargin := 30;
Sheet.PageSetup.BottomMargin := 50;
Sheet.PageSetup.PrintQuality := 400; //分辨率
Sheet.PageSetup.CenterHorizontally := True;//是否水平居中
Sheet.PageSetup.CenterVertically := True; //是否垂直居中
Sheet.PageSetup.Orientation := 2; //橫向打印
Sheet.PageSetup.Draft := False; //非草稿模式
Sheet.PageSetup.FirstPageNumber := xlAutomatic;
Sheet.PageSetup.BlackAndWhite := True; //黑白稿
Sheet.PageSetup.Zoom := 100; //縮放
sheet.PrintPreView; //打印預覽
end;
好了,到這,我已經(jīng)介紹了大部分常用的控制方法,試試吧。提醒你,你的機子裝了Excel沒(méi)有……