delphi操作Excel

()   使用動態創建的方法

       首先創建   Excel   對象,使用ComObj:  

       uses ComObj;   

  var   ExcelApp:   Variant;  

   

  ExcelApp   :=   CreateOleObject(   'Excel.Application'   );  

   

  1)   顯示當前窗口:  

   

  ExcelApp.Visible   :=   True;  

   

  2)   更改   Excel   標題欄:  

   

  ExcelApp.Caption   :=   '應用程序調用   Microsoft   Excel';  

   

  3)   添加新工作簿:  

   

  ExcelApp.WorkBooks.Add;   {或者:ExcelApp.WorkBooks.Add(-4167); 只建立一個sheet}

   

  4)   打開已存在的工作簿:  

   

  ExcelApp.WorkBooks.Open(   'C:.xls'   );  

    

  5)   設置第2個工作表爲活動工作表:  

   

  ExcelApp.WorkSheets[2].Activate;  

   

    

   

  ExcelApp.WorksSheets[   'Sheet2'   ].Activate;  

   

  6)   給單元格賦值:  

   

  ExcelApp.Cells[1,4].Value   :=   '第一行第四列';  

   

  7)   設置指定列的寬度(單位:字符個數),以第一列爲例:  

   

  ExcelApp.ActiveSheet.Columns[1].ColumnsWidth   :=   5;  

   

  8)   設置指定行的高度(單位:磅)(10.035釐米),以第二行爲例:  

   

  ExcelApp.ActiveSheet.Rows[2].RowHeight   :=   1/0.035;   //   1釐米  

   

  9)   在第8行之前插入分頁符:  

   

  ExcelApp.WorkSheets[1].Rows[8].PageBreak   :=   1;  

   

  10)   在第8列之前刪除分頁符:  

   

  ExcelApp.ActiveSheet.Columns[4].PageBreak   :=   0;  

   

  11)   指定邊框線寬度:  

   

  ExcelApp.ActiveSheet.Range[   'B3:D4'   ].Borders[2].Weight   :=   3;  

   

  1-   2-   3-   4-   5-(   )   6-(   /   )  

   

  12)   清除第一行第四列單元格公式:  

   

  ExcelApp.ActiveSheet.Cells[1,4].ClearContents;  

   

  13)   設置第一行字體屬性:  

   

  ExcelApp.ActiveSheet.Rows[1].Font.Name   :=   '隸書';  

   

  ExcelApp.ActiveSheet.Rows[1].Font.Color   :=   clBlue;  

   

  ExcelApp.ActiveSheet.Rows[1].Font.Bold   :=   True;  

   

  ExcelApp.ActiveSheet.Rows[1].Font.UnderLine   :=   True;  

   

  14)   進行頁面設置:  

   

  a.頁眉:  

   

  ExcelApp.ActiveSheet.PageSetup.CenterHeader   :=   '報表演示';  

   

  b.頁腳:  

   

  ExcelApp.ActiveSheet.PageSetup.CenterFooter   :=   '&P';  

   

  c.頁眉到頂端邊距2cm  

   

  ExcelApp.ActiveSheet.PageSetup.HeaderMargin   :=   2/0.035;  

   

  d.頁腳到底端邊距3cm  

   

  ExcelApp.ActiveSheet.PageSetup.HeaderMargin   :=   3/0.035;  

   

  e.頂邊距2cm  

   

  ExcelApp.ActiveSheet.PageSetup.TopMargin   :=   2/0.035;  

   

  f.底邊距2cm  

   

  ExcelApp.ActiveSheet.PageSetup.BottomMargin   :=   2/0.035;  

   

  g.左邊距2cm  

   

  ExcelApp.ActiveSheet.PageSetup.LeftMargin   :=   2/0.035;  

   

  h.右邊距2cm  

   

  ExcelApp.ActiveSheet.PageSetup.RightMargin   :=   2/0.035;  

   

  i.頁面水平居中:  

   

  ExcelApp.ActiveSheet.PageSetup.CenterHorizontally   :=   2/0.035;  

   

  j.頁面垂直居中:  

   

  ExcelApp.ActiveSheet.PageSetup.CenterVertically   :=   2/0.035;  

   

  k.打印單元格網線:  

   

  ExcelApp.ActiveSheet.PageSetup.PrintGridLines   :=   True;  

   

  15)   拷貝操作:  

   

  a.拷貝整個工作表:  

   

  ExcelApp.ActiveSheet.Used.Range.Copy;  

   

  b.拷貝指定區域:  

   

  ExcelApp.ActiveSheet.Range[   'A1:E2'   ].Copy;  

   

  c.A1位置開始粘貼:  

   

  ExcelApp.ActiveSheet.Range.[   'A1'   ].PasteSpecial;  

   

  d.從文件尾部開始粘貼:  

   

  ExcelApp.ActiveSheet.Range.PasteSpecial;  

   

  16)   插入一行或一列:  

   

  a.   ExcelApp.ActiveSheet.Rows[2].Insert;  

   

  b.   ExcelApp.ActiveSheet.Columns[1].Insert;  

   

  17)   刪除一行或一列:  

   

  a.   ExcelApp.ActiveSheet.Rows[2].Delete;  

   

  b.   ExcelApp.ActiveSheet.Columns[1].Delete;  

   

  18)   打印預覽工作表:  

   

  ExcelApp.ActiveSheet.PrintPreview;  

   

  19)   打印輸出工作表:  

   

  ExcelApp.ActiveSheet.PrintOut;  

   

  20)   工作表保存:  

   

  if   not   ExcelApp.ActiveWorkBook.Saved   then  

   

  ExcelApp.ActiveSheet.PrintPreview;  

   

  21)   工作表另存爲:  

   

  ExcelApp.SaveAs(   'C:.xls'   );  

   

  22)   放棄存盤:  

   

  ExcelApp.ActiveWorkBook.Saved   :=   True;  

   

  23)   關閉工作簿:  

   

  ExcelApp.WorkBooks.Close;  

   

  24)   退出   Excel  

   

  ExcelApp.Quit;  

   

  ()   使用Delphi   控件方法  

   

  Form中分別放入ExcelApplication,   ExcelWorkbookExcelWorksheet  

   

  1   打開Excel  

   

  ExcelApplication1.Connect;  

   

  2)   顯示當前窗口:  

   

  ExcelApplication1.Visible[0]:=True;  

   

  3)   更改   Excel   標題欄:  

   

  ExcelApplication1.Caption   :=   '應用程序調用   Microsoft   Excel';  

   

  4)   添加新工作簿:  

   

  ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));  

   

  5)   添加新工作表:  

   

  var   Temp_Worksheet:   _WorkSheet;  

   

  begin  

   

  Temp_Worksheet:=ExcelWorkbook1.  

   

  WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)   as   _WorkSheet;  

   

  ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);  

   

  End;  

   

  6)   打開已存在的工作簿:  

   

  ExcelApplication1.Workbooks.Open   (c:.xls  

   

  EmptyParam,EmptyParam,EmptyParam,EmptyParam,  

   

  EmptyParam,EmptyParam,EmptyParam,EmptyParam,  

   

  EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)  

   

  7)   設置第2個工作表爲活動工作表:  

   

  ExcelApplication1.WorkSheets[2].Activate;     

    

  ExcelApplication1.WorksSheets[   'Sheet2'   ].Activate;  

8)   給單元格賦值:  

   

  ExcelApplication1.Cells[1,4].Value   :=   '第一行第四列';  

   

  9)   設置指定列的寬度(單位:字符個數),以第一列爲例:  

   

  ExcelApplication1.ActiveSheet.Columns[1].ColumnsWidth   :=   5;  

   

  10)   設置指定行的高度(單位:磅)(10.035釐米),以第二行爲例:  

   

  ExcelApplication1.ActiveSheet.Rows[2].RowHeight   :=   1/0.035;   //   1釐米  

   

  11)   在第8行之前插入分頁符:  

   

  ExcelApplication1.WorkSheets[1].Rows[8].PageBreak   :=   1;  

   

  12)   在第8列之前刪除分頁符:  

   

  ExcelApplication1.ActiveSheet.Columns[4].PageBreak   :=   0;  

   

  13)   指定邊框線寬度:  

   

  ExcelApplication1.ActiveSheet.Range[   'B3:D4'   ].Borders[2].Weight   :=   3;  

   

  1-   2-   3-   4-   5-(   )   6-(   /   )  

   

  14)   清除第一行第四列單元格公式:  

   

  ExcelApplication1.ActiveSheet.Cells[1,4].ClearContents;  

   

  15)   設置第一行字體屬性:  

   

  ExcelApplication1.ActiveSheet.Rows[1].Font.Name   :=   '隸書';  

   

  ExcelApplication1.ActiveSheet.Rows[1].Font.Color   :=   clBlue;  

   

  ExcelApplication1.ActiveSheet.Rows[1].Font.Bold   :=   True;  

   

  ExcelApplication1.ActiveSheet.Rows[1].Font.UnderLine   :=   True;  

   

  16)   進行頁面設置:  

   

  a.頁眉:  

   

  ExcelApplication1.ActiveSheet.PageSetup.CenterHeader   :=   '報表演示';  

   

  b.頁腳:  

   

  ExcelApplication1.ActiveSheet.PageSetup.CenterFooter   :=   '&P';  

   

  c.頁眉到頂端邊距2cm  

   

  ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin   :=   2/0.035;  

   

  d.頁腳到底端邊距3cm  

   

  ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin   :=   3/0.035;  

   

  e.頂邊距2cm  

   

  ExcelApplication1.ActiveSheet.PageSetup.TopMargin   :=   2/0.035;  

   

  f.底邊距2cm  

   

  ExcelApplication1.ActiveSheet.PageSetup.BottomMargin   :=   2/0.035;  

   

  g.左邊距2cm  

   

  ExcelApplication1.ActiveSheet.PageSetup.LeftMargin   :=   2/0.035;  

   

  h.右邊距2cm  

   

  ExcelApplication1.ActiveSheet.PageSetup.RightMargin   :=   2/0.035;  

   

  i.頁面水平居中:  

   

  ExcelApplication1.ActiveSheet.PageSetup.CenterHorizontally   :=   2/0.035;  

   

  j.頁面垂直居中:  

   

  ExcelApplication1.ActiveSheet.PageSetup.CenterVertically   :=   2/0.035;  

   

  k.打印單元格網線:  

   

  ExcelApplication1.ActiveSheet.PageSetup.PrintGridLines   :=   True;  

   

  17)   拷貝操作:  

   

  a.拷貝整個工作表:  

   

  ExcelApplication1.ActiveSheet.Used.Range.Copy;  

   

  b.拷貝指定區域:  

   

  ExcelApplication1.ActiveSheet.Range[   'A1:E2'   ].Copy;  

   

  c.A1位置開始粘貼:  

   

  ExcelApplication1.ActiveSheet.Range.[   'A1'   ].PasteSpecial;  

   

  d.從文件尾部開始粘貼:  

   

  ExcelApplication1.ActiveSheet.Range.PasteSpecial;  

   

  18)   插入一行或一列:  

   

  a.   ExcelApplication1.ActiveSheet.Rows[2].Insert;  

   

  b.   ExcelApplication1.ActiveSheet.Columns[1].Insert;  

   

  19)   刪除一行或一列:  

   

  a.   ExcelApplication1.ActiveSheet.Rows[2].Delete;  

   

  b.   ExcelApplication1.ActiveSheet.Columns[1].Delete;  

   

  20)   打印預覽工作表:  

   

  ExcelApplication1.ActiveSheet.PrintPreview;  

   

  21)   打印輸出工作表:  

   

  ExcelApplication1.ActiveSheet.PrintOut;  

   

  22)   工作表保存:  

   

  if   not   ExcelApplication1.ActiveWorkBook.Saved   then  

   

  ExcelApplication1.ActiveSheet.PrintPreview;  

   

  23)   工作表另存爲:  

   

  ExcelApplication1.SaveAs(   'C:.xls'   );  

   

  24)   放棄存盤:  

   

  ExcelApplication1.ActiveWorkBook.Saved   :=   True;  

   

  25)   關閉工作簿:  

   

  ExcelApplication1.WorkBooks.Close;  

   

  26)   退出   Excel  

   

  ExcelApplication1.Quit;  

   

  ExcelApplication1.Disconnect;  

   

  ()   使用Delphi   控制Excle二維圖  

   

  Form中分別放入ExcelApplication,   ExcelWorkbookExcelWorksheet  

   

  var   asheet1,achart,   range:variant;  

   

  1選擇當第一個工作薄第一個工作表  

   

  asheet1:=ExcelApplication1.Workbooks[1].Worksheets[1];  

    

  2)增加一個二維圖  

   

  achart:=asheet1.chartobjects.add(100,100,200,200);    {left,top,width,height}

   

  3)選擇二維圖的形態  

   

  achart.chart.charttype:=4;  

   

  4)給二維圖賦值 

     

  series:=achart.chart.seriescollection;  

 

  range:=sheet1!r2c3:r3c9;  

   

  series.add(range,true);  

   

  {

  方法2:

  var

      RangeStr:string;

 

  RangeStr:='A3:A'+inttostr(5)+','+Chr(Ord('A')+8)+'3:'+Chr(Ord('A')+8)+inttostr(5);

 

  //第一個參數是範圍,第二個指的是行or(xlRows 1 xlColumns 2 )參考VBA

  achart.chart.setsourcedata(asheet.range[RangeStr],2);  

 

  }

      

  5)加上二維圖的標題  

   

  achart.Chart.HasTitle:=True;  

   

  achart.Chart.ChartTitle.Characters.Text:=   Excle二維圖’  

   

  6)改變二維圖的標題字體大小  

   

  achart.Chart.ChartTitle.Font.size:=6;  

   

  7)給二維圖加下標說明  

   

  achart.Chart.Axes(xlCategory,   xlPrimary).HasTitle   :=   True;  

   

  achart.Chart.Axes(xlCategory,   xlPrimary).AxisTitle.Characters.Text   :=   '下標說明';  

   

  8)給二維圖加左標說明  

   

  achart.Chart.Axes(xlValue,   xlPrimary).HasTitle   :=   True;  

   

  achart.Chart.Axes(xlValue,   xlPrimary).AxisTitle.Characters.Text   :=   '左標說明';  

   

  9)給二維圖加右標說明  

   

  achart.Chart.Axes(xlValue,   xlSecondary).HasTitle   :=   True;  

   

  achart.Chart.Axes(xlValue,   xlSecondary).AxisTitle.Characters.Text   :=   '右標說明';  

   

  10)改變二維圖的顯示區大小  

   

  achart.Chart.PlotArea.Left   :=   5;  

   

  achart.Chart.PlotArea.Width   :=   223;  

   

  achart.Chart.PlotArea.Height   :=   108;  

   

  11)給二維圖座標軸加上說明  

   

  achart.chart.seriescollection[1].NAME:='座標軸說明';  

 

  12)給二維圖加上標籤說明

 

  achart.chart.haslegend:=true;

  

  achart.Chart.Legend.Position := -4160;

 

 

PS:有一些VBA中的常數,不需要刻意去記,要用的時候。把Excel打開。自己錄製一段宏,即可知道其值的大小。前一段時間,用Delphi + SQL Server做過一個MIS項目,現在才發現幾乎全忘光了!看來,還是要找個地方記下來,以便以後用到的時候,方便彙總。

本文主要轉自:http://topic.csdn.net/t/20030704/14/1990740.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章