Delphi 5 控制Excel

(一)   使用動態創建的方法  
   
  首先創建   Excel   對象,使用ComObj:  
  var   ExcelApp:   Variant;  
  ExcelApp   :=   CreateOleObject(   'Excel.Application'   );  
   
  1)   顯示當前窗口:  
  ExcelApp.Visible   :=   True;  
   
  2)   更改   Excel   標題欄:  
  ExcelApp.Caption   :=   '應用程序調用   Microsoft   Excel';  
   
  3)   添加新工作簿:  
  ExcelApp.WorkBooks.Add;  
   
  4)   打開已存在的工作簿:  
  ExcelApp.WorkBooks.Open(   'C:/Excel/Demo.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)   設置指定行的高度(單位:磅)(1磅=0.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:/Excel/Demo1.xls'   );  
   
  22)   放棄存盤:  
  ExcelApp.ActiveWorkBook.Saved   :=   True;  
   
  23)   關閉工作簿:  
  ExcelApp.WorkBooks.Close;  
   
  24)   退出   Excel:  
  ExcelApp.Quit;  
   
  (二)   使用Delphi   控件方法  
  在Form中分別放入ExcelApplication,   ExcelWorkbook和ExcelWorksheet。    
   
  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:/a.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)   設置指定行的高度(單位:磅)(1磅=0.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:/Excel/Demo1.xls'   );  
   
  24)   放棄存盤:  
  ExcelApplication1.ActiveWorkBook.Saved   :=   True;  
   
  25)   關閉工作簿:  
  ExcelApplication1.WorkBooks.Close;  
   
  26)   退出   Excel:  
  ExcelApplication1.Quit;  
  ExcelApplication1.Disconnect;  
   
  (三)   使用Delphi   控制Excle二維圖  
  在Form中分別放入ExcelApplication,   ExcelWorkbook和ExcelWorksheet  
  var   asheet1,achart,   range:variant;  
   
  1)選擇當第一個工作薄第一個工作表  
  asheet1:=ExcelApplication1.Workbooks[1].Worksheets[1];  
   
  2)增加一個二維圖  
  achart:=asheet1.chartobjects.add(100,100,200,200);  
   
  3)選擇二維圖的形態  
  achart.chart.charttype:=4;  
   
  4)給二維圖賦值  
  series:=achart.chart.seriescollection;  
  range:=sheet1!r2c3:r3c9;  
  series.add(range,true);  
     
  5)加上二維圖的標題  
  achart.Chart.HasTitle:=True;  
  achart.Chart.ChartTitle.Characters.Text:=’   Ex

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