delphi要控制EXCEL時用的,不錯,轉了。

2021-07-09 17:54:43 字數 4782 閱讀 7560

定義變數

excelid:variant;

1、建立ole物件

tryexcept

on exception do raise exception.create('無法建立xls檔案,請確認是否安裝excel')

end;

excelid.visible := false; //excel顯示設定

excelid.workbooks.add;  //生成新的excel檔案

bcount:=excelid.worksheets.count; //取得了excel的worksheets的頁數

bcount:=excelid. sheets.count; //取得了excel的sheets的頁數,包括(worksheet,chart等等)

excelid.worksheets.add(null,excelid.worksheets[bcount]);  // excelid.worksheets[bcount])的      後面生成新頁  excelid.worksheets.add(before,after)

excelid.worksheets[datapage].columns[1].numberformatlocal := '00000000' ; //把這一列按某種格式顯示

excelid.worksheets[datapage].name:='主要頻率時段占有率'; //worksheet的caption

excelid.worksheets[datapage].cells[1,exclos].value:=fchecklistboxpott.items[i];//給單元格賦值

excelid.worksheets[datapage].rows[1].rowheight:=28.5;//行高

excelid.worksheets[datapage].rows[1].wraptext:=true;//文字自動換行

excelid.worksheets[datapage].cells[1,cols].borders[2].weight:=xlthin;//設定邊框為黑邊框

excelid.worksheets[datapage].range[excelid.worksheets[datapage].cells[1,1], excelid.worksheets[datapage].cells[rows,cols]].borders.linestyle := xlcontinuous;//加邊框

excelid.worksheets[datapage].range[excelid.worksheets[datapage].cells[1,1], excelid.worksheets[datapage].cells[rows,cols]].horizontalalignment:=xlhaligncenter;//居中對齊

excelid.worksheets[datapage].range[excelid.worksheets[datapage].cells[1,1], excelid.worksheets[datapage].cells[rows,cols]].font.size:=12;  //字型大小

excelid.worksheets[datapage].range[excelid.worksheets[datapage].cells[1,1], excelid.worksheets[datapage].cells[rows,cols]].font.name:='宋體'; //字型格式

achart1 := excelid.worksheets[datapage].chartobjects.add(left,top,width,height); //在這個位置生成圖

achart1.chart.charttype := xl3dpieexploded;//xl3dpie ;  //生成何種型別的圖

cell1 :=  excelid.worksheets[datapage].cells[fixrows,fixclos];

cell2 :=  excelid.worksheets[datapage].cells[exrows,fixclos];

cell3 :=  excelid.worksheets[datapage].cells[fixrows,exclos];

cell4 :=  excelid.worksheets[datapage].cells[exrows,exclos];

range1 := excelid.worksheets[datapage].range[cell1, cell2]; //設定chart類別座標軸(x軸)的取值區域

range2 := excelid.worksheets[datapage].range[cell3, cell4]; //設定chart數值座標軸(y軸)的取值區域

range3:=excelid.worksheets[datapage].range[range1,range2];  //取值區域

achart2:=achart1.chart.location(xllocationasnewsheet,sheetname); //使生成的為乙個新頁,並佔滿整個頁

achart2.setsourcedata(range3,xlcolumns);   // 設定生成圖形的資料來源

achart2.legend.delete; //刪除右側的標題

achart2.hastitle:=true;  //新增圖表標題能夠顯示

achart2.charttitle.characters.text:=chartname;//圖的標題

achart2.charttitle.font.size:=18;//圖的標題的字型的大小

achart2.haslegend:=true;//能夠顯示屬性圖

achart2.legend.position := xlbottom;  //屬性圖顯示在下面

achart2.chartarea.border.weight := xlhairline; 圖的外框的粗細

achart2.chartarea.border.linestyle := xlcontinuous//圖的外框的樣式 

//設定影象

achart2.plotarea.interior.colorindex := xlnone;

achart2.plotarea.border.weight := xlhairline ;

achart2.plotarea.border.linestyle := xlnone ;

achart2.plotarea.width:=495;

achart2.plotarea.left:=117;

achart2.plotarea.top:=127;

excelid.displayalerts:= false; //使excel不談出對話方塊

excelid.worksheets[3].rows.entirecolumn.autofit;//excel自動調整列

excelid.worksheets[3].rows.autofit;

excelid.worksheets[excelsheetcount].range['d'+inttostr(hebin1)+':d'+inttostr(row-1)].mergecells:=true;//合併單元格

excelid.worksheets[excelsheetcount].range['a4:m'+inttostr(row-1)+''].borders.linestyle:=1;//設定邊框樣式

excelid.worksheets[excelsheetcount].rows.entirecolumn.autofit;//excel自動調整列

excelid.worksheets[excelsheetcount].rows.autofit;//自動調整行

excelid.worksheets[excelsheetcount].cells[1,1].characters(1,setstrlength).font.size:=20;//取得單元格內的內容是一部分按設定的格式顯示

excelid.worksheets[excelsheetcount].cells[1,1].font.size:=20;  //設定單元格的字型大小

excelid.worksheets[excelsheetcount].cells[1,1].font.bold:=true;//設定字型為黑體

excelid.worksheets[excelsheetcount].range['a1:n3'].horizontalalignment := xlleft;//字型左對齊

excelid.worksheets[excelsheetcount].cells[3,1].value := '更新日期:  '+formatdatetime('yyyy年mm月dd日',now());

excelid.worksheets[excelsheetcount].columns[14].columns.autofit; //列的自動調整

excelid.worksheets[excelsheetcount].columns[13].columnwidth:=5;//設定一列的寬度

excelid.worksheets[excelsheetcount].columns['k:m'].columnwidth:=9;//設定多列的寬度

excelid.worksheets[excelsheetcount].columns[12].numberformatlocal := 'yyyy-mm-dd'; //設定列的顯示格式

excelid.worksheets[excelsheetcount].range['a4:n5'].interior.color:=rgb(191,191,191); //設定顏色

excelid.worksheets[excelsheetcount].range['m4:n4'].merge(true); //合併單元格

Delphi控制Excel2000心得

一 使用動態建立的方法 首先建立 excel 物件,使用comobj 1 顯示當前視窗 2 更改 excel 標題欄 3 新增新工作簿 4 開啟已存在的工作簿 5 設定第2個工作表為 活動 工作表 或 6 給單元格賦值 7 設定指定列的寬度 單位 字元個數 以第一列為例 8 設定指定行的高度 單位 ...

delphi操作excel語法

一 使用動態建立的方法 sheet3.columns 1 columnwidth 20 設定單元格居中 設定單元格居右 14 進行頁面設定 15 拷貝操作 5 新增新工作表 var temp worksheet worksheet begin temp worksheet excelworkbook...

delphi 讀取Excel資料

一 使用動態建立的方法 首先建立 excel 物件,使用comobj var1 顯示當前視窗 2 更改 excel 標題欄 3 新增新工作簿 4 開啟已存在的工作簿 5 設定第2個工作表為活動工作表 或6 給單元格賦值 7 設定指定列的寬度 單位 字元個數 以第一列為例 8 設定指定行的高度 單位 ...