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

用Delphi將數據導入到Excel並控制Excel

編輯:Delphi

 

一、調用Excel的方法:一般情況下有兩種方法調用Excel:
1、  直接使用Delphi自帶的組件:在Form中分別放入ExcelApplication, ExcelWorkbook和ExcelWorksheet。
2、動態創建Excel文件:首先創建 Excel 對象,使用ComObj,Excel2000:
var ExcelApp: Variant;
ExcelApp := CreateOleObject( 'Excel.Application' );

二、導入數據:在程序中,我們可以將查詢到的數據(SQL、Access、)導入到Excel中。例如:用Adoquery查詢Access中的數據:
1、先查到所需的數據;
2、導入:i:=1;
Adoquery.First;
               while not Adoquery.Eof do
                 Begin
                   ExcelApp.WorkSheets[1].Cells[i,1].Value := i;//添加序號的值
ExcelApp.WorkSheets[1].Cells[i,2].Value := Adoquery.FieldByName('cp_name').AsString;
                   ……
                   Inc(i);
Adoquery.Next;
                 End;
當然也可以把Adotable、Adoquery、Table、Query等組件的數據導入到Excel中。

三、Excel的處理:如果在你已知Excel格式的情況下,可以控制Excel,如下:
1、 顯示當前窗口:ExcelApp.Visible := True;
2、 更改 Excel 標題欄:ExcelApp.Caption := '標題內容';
3、 添加新工作簿:ExcelApp.WorkBooks.Add;
4、 設置第2個工作表為活動工作表:ExcelApp.WorkSheets[2].Activate;
5、 給單元格賦值:ExcelApp.Cells[1,1].Value := '第一行第一列';
6、 設置指定列的寬度(單位:字符個數),以第一列為例:
ExcelApp.ActiveSheet.Columns[1].ColumnsWidth := 5;
7、 設置指定行的高度(單位:磅)(1磅=0.035厘米),以第二行為例:
ExcelApp.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米
8、文字水平居中:Excelid.worksheets[1].Rows[1].HorizontalAlignment := $FFFFEFF4;    上面的文字如果不指定行坐標,那麼就會設置所有行數據居中顯示。     文字垂直居中:Excelid.worksheets[1].Rows[1].VerticalAlignment := $FFFFEFF4;
9、 插入一行或一列:a. ExcelApp.ActiveSheet.Rows[2].Insert;
b. ExcelApp.ActiveSheet.Columns[1].Insert;
10、 刪除一行或一列:a. ExcelApp.ActiveSheet.Rows[2].Delete;
b. ExcelApp.ActiveSheet.Columns[1].Delete;  
11、合並單元格:ExcelApp.worksheets[1].range[A1:F8'].Merge(abc);注:要聲明變量abc: Variant;
12、豎行顯示文字:ExcelApp.worksheets[1].Cells.Item[1,1].Orientation:= xlVertical;
13、單元格加邊線:ExcelApp.worksheets[1].Range[A1:F8].Borders.LineStyle := 1;
14、在第8行之前插入分頁符:ExcelApp.WorkSheets[1].Rows[8].PageBreak := 1;
15、在第4列之前刪除分頁符:ExcelApp.ActiveSheet.Columns[4].PageBreak := 0;
16、指定邊框線寬度:ExcelApp.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;
1-左    2-右   3-頂    4-底   5-斜( \ )     6-斜( / )
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、清除第一行第四列單元格公式:ExcelApp.ActiveSheet.Cells[1,4].ClearContents;
19、工作表保存:if not ExcelApp.ActiveWorkBook.Saved then
                ExcelApp.ActiveSheet.PrintPreview;
20、工作表另存為:ExcelApp.SaveAs( 'C:\Excel\Demo1.xls' );
21、放棄存盤:ExcelApp.ActiveWorkBook.Saved := True;
22、關閉工作簿:ExcelApp.WorkBooks.Close;
23、退出 Excel:ExcelApp.Quit;
下面是有關打印頁面控制的語句:
    24、設置第一行字體屬性: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;
ExcelApp.ActiveSheet.Rows[1].Font.size:=10;
25、進行頁面設置:a.頁眉:ExcelApp.ActiveSheet.PageSetup.CenterHeader := '報表演示';
b.頁腳:ExcelApp.ActiveSheet.PageSetup.CenterFooter := '共&N頁 第&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;
26、打印預覽工作表:ExcelApp.ActiveSheet.PrintPreview;
27、打印輸出工作表:ExcelApp.ActiveSheet.PrintOut;
對Excel的其他控制:
28、excel的多單元格合計功能:ExcelApp..Cells[ARow, ACol].Formula 
:= '= SUM($+IntToStr(BeginRow) +:$ + IntToStr(EndRow) +');
注:聲明變量ARow, ACol: Integer;
29、打開已經存在的Excel文件: ExcelApplication1.Workbooks.Open (path);
注:在數據倒入Excel時不要邊導入邊修改,這樣會使倒入到Excel的時間加長,一般最好是在倒入完數據後再調Excel的格式(例如頁邊距、單元個屬性、文字屬性)。 原文參考:http://blog.csdn.net/u011354184/article/details/10966971。 本文在實際操作中發現的一些問題基礎上作部分修改。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved