程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi控制Excel

Delphi控制Excel

編輯:Delphi
類 別:COM & ActiveX
  (一) 使用動態創建的方法
  首先創建 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:ExcelDemo.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:ExcelDemo1.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:ExcelDemo1.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:=’ 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:='坐標軸說明';
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved