1. 程式人生 > >怎麼在delphi中讀取Excel資料(各種詳細操作)

怎麼在delphi中讀取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:
ExcelAppli

cation1.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 )給二維圖賦值

相關推薦

怎麼在delphi讀取Excel資料各種詳細操作

( 一 ) 使用動態建立的方法首先建立 Excel 物件,使用ComObj :VarExcelApp : Variant ;ExcelApp := CreateOleObject ( '' Excel.Application'' ) ;1 ) 顯示當前視窗:Exce

Drupal 讀取Excel資料再轉換格式到另一個Excel

開放原碼了,再有同學碰到類似問題,不會像我這樣到處去找資料和翻網站,碼中有什麼不好或者有什麼缺點的請看到的同學多多指教,好更好的更新程式碼。 放個costsheet.info先: name = CostSheet Convert Puma description = 讀

Java使用poi讀取excel資料excel可能很大,先轉換為csv再讀取

————————————配置———————————— jdbc.properties中加入: excelUrl=/……xlsx檔案目錄路徑/ (excelUrl + “xxxx.xlsx” 為完整路徑) 匯入poi-3.16下的6個jar包,poi-3.16/l

python介面自動化三十七-封裝與呼叫--讀取excel 資料詳解

簡介   在進行軟體介面測試或設計自動化測試框架時,一個不比可避免的過程就是: 引數化,在利用python進行自動化測試開發時,通常會使用excel來做資料管理,利用xlrd、xlwt開源包來讀寫excel。例如:當我們登入的賬號有多個的時候,我們一般用 excel 存放測試資料,本篇文章介紹,pytho

Java讀取配置檔案properties、xml

1. 利用java.util提供的工具類Properties       - 首先我這邊有個file.properties檔案       - 然後去讀取這個檔案

在VC匯出excel表格兩種方法

相關資料可以參考http://blog.csdn.net/Augusdi/article/category/704352 1.利用ODBC void CGroupPanel::OnExportChannelinfo() { CGroupManager * pGroupMg

c# excel學習讀寫操作

#需要的dll Microsoft.Office.Interop.Excel (安裝了office,都會找到這個dll) //需要匯入 using Microsoft.Office.Interop.Excel; using System.Reflection; //1.建立Applic

《機器學習實戰》第2章閱讀筆記3 使用K近鄰演算法改進約會網站的配對效果—分步驟詳細講解1——資料準備:從文字檔案解析資料詳細程式碼及註釋

 本篇使用的資料存放在文字檔案datingTestSet2.txt中,每個樣本資料佔據一行,總共有1000行。 樣本主要包含以下3中特徵: (1)每年獲得飛行常客里程數 (2)玩視訊遊戲所耗時間百分比 (3)每週消費的冰淇淋公升數 在使用分類器之前,需要將處理的檔案格式

Matlab讀取txt檔案資料使用textread函式

在使用Matlab處理資料時,我們經常需要讀取txt文件,可以使用Matlab中強大的textread函式。它的基本語法是:[A,B,C,...] = textread(filename,format)[A,B,C,...] = textread(filename,forma

Java讀取Excel資料:基於Apache POI

Java讀取Excel資料:基於Apache POI(一) Java本身不支援直接讀取微軟的Excel表格資料。第三方的Apache提供了一個庫POI用以支援Java讀寫Excel表格資料。 首先需要到Apache官網下載POI的庫,下載連結地址:https://poi.apache.org

史無前例之---NodeJs 讀取OracleDB 資料,將data 生成 Excel檔案

/** * Created by json on 2017/6/5. * 推介使用:excel-export * 根據data ,JSON.parse(data)---<data=JSON.stringify(result)> * 設定 Exce

SOAPUI讀取Excel資料執行迴圈測試loop test

SoapUI可以藉助於內部或者外部設定的資料進行相同引數、不同值的迴圈測試,如下圖 以下主要介紹讀取Excel檔案中的資料,其他型別資料類似。 1.建立REST Project 2.建立T

python使用xlrd讀取excel資料作為requests的請求引數,並把返回的資料寫入excel

實現功能: 從excel中的第一列資料作為post請求的資料,資料為json格式;把post返回的結果寫入到excel的第二列資料中 每一行的資料都不一樣,可實現迴圈呼叫 # !/usr/bin/env python # -*- coding:utf-8 -*- #import xlwt

4-1Unity3D/工具:6步學會在Unity讀取Excel配置檔案

第一步:下載Unity3D讀取Excel工具【ExcelResolutionForUnity】並解壓,下載地址:點選下載 下載解壓後文件目錄如下: 第二步:把這3個檔案匯入到你的Unity專案目

JAVA反射機制示例,讀取excel資料對映到JAVA物件

import java.beans.PropertyDescriptor; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import j

js讀取Excel資料僅IE有效

/** * desc:解析一個本地excel,返回一個二維陣列 * param {}物件 屬性 path,sheet,rowStart,rowEnd,colStart,colEnd,cols, cols為陣列如[1,3,5]表示135列 * param.path (Excel的路徑) 必需

在java匯入excel表格讀取Excel資料的日期格式

在ExcelReader類中.getStringCellValue()方法裡: public static String getStringCellValue(Cell cell) { if(cell == null){ return ""; } String strCell = ""; switch (c

Qt純C++項目發布為dll的方法詳細步驟

exe 程序 con ostream address 只需要 include free windows 眾所周知,我們可以將C++項目中的類以及函數導出,形成 .dll 文件,以供其他程序使用,下面將說明Qt環境下的使用方法。 首先創建共享庫,步驟如下:

DelphiMD5實現方法

file 單元 ava sender shm md5 文章 files admin 原來寫過一個計算MD5的程序,是用了一個叫MD5.pas的單元,使用起來還算簡單,但還有更簡單的辦法,安裝了indy就會有IdHashMessageDigest單元(delphi 7默認安裝

DelphiTApplication詳解轉僅供自己參考

exce 停止 main roc 參數 reference pause 響應 選擇 轉自:http://blog.sina.com.cn/s/blog_4d6f55d90100bmv9.html   TApplication是用於Delphi應用程序的類型,該類在單元fo