delphi 操作excel.docx

上传人:b****6 文档编号:7800859 上传时间:2023-01-26 格式:DOCX 页数:33 大小:20.49KB
下载 相关 举报
delphi 操作excel.docx_第1页
第1页 / 共33页
delphi 操作excel.docx_第2页
第2页 / 共33页
delphi 操作excel.docx_第3页
第3页 / 共33页
delphi 操作excel.docx_第4页
第4页 / 共33页
delphi 操作excel.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

delphi 操作excel.docx

《delphi 操作excel.docx》由会员分享,可在线阅读,更多相关《delphi 操作excel.docx(33页珍藏版)》请在冰豆网上搜索。

delphi 操作excel.docx

delphi操作excel

1.往Excel中插入图片

    

用MsExcelWorkSheet.Pictures.Insert(ExtractFilePath(ParamStr(0))+'temp.jpg'); 

可以放图片

 

var 

ExcelApp,MyWorkBook,MsExcelWorkSheet,Temple1:

Variant; 

begin 

   try 

     ExcelApp:

=CreateOleObject('Excel.Application'); 

     MyWorkBook:

=CreateOleobject('Excel.Sheet'); 

     MyWorkBook:

=ExcelApp.WorkBooks.open(ExtractFilePath(ParamStr(0))+'testItemB

ook.xls'); 

     MsExcelWorkSheet:

=MyWorkBook.WorkSheets['3']; 

 

     if not ADOQueryItemBook.IsEmpty then 

     begin 

       Tblobfield(ADOQueryItemBook.FieldByName('pic')).SaveToFile(ExtractFilePat

h(ParamStr(0))+'temp.jpg'); 

       

MsExcelWorkSheet.Pictures.Insert(ExtractFilePath(ParamStr(0))+'temp.jpg'); 

     end;   

提供一些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.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.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:

=’ Excle

二维图’ 

 

 

 

EXCEL

电子表格作为办公软件

OFFICE

中的重要组成部份

是日常办公系统的主要助手

因此许

多日常所需的业务方面的数据通常是通过电子表格存取。

有时我们需要从日常工作中创建的

EXCEL

中取得数据进行操作、打印、查询

统计等工作。

在这里我将介绍如何利用

delphi

EXCEL

电子表格中数据的操作。

 

一、新建一项目

从控件栏

servers

中分别选取控件

:

excelapplication

excelworkbook1

excelworksheet,

放到主窗体

from1

并加入

stringgrid

三个按钮、

五个显示字段内容的

EDIT

、二个操作显示记录的

label

、一个用于打开

EXCEL

电子表格的控件

opendialog

下图所示

:

 

 

 

二、选择

excel

'

按钮

用于打开

EXCEL

文件

其代码如下

:

 

procedure TForm1.Button1Click(Sender:

 TObject); 

var i,j:

integer; 

begin 

opendialog1.InitialDir:

=ExtractFileDir(paramstr(0));//

文件的打存放初始路径

 

opendialog1.Execute; 

Try 

ExcelApplication1.Connect;//EXCEL

应用程序

 

Except 

MessageDlg('Excel may not be installed',mtError, [mbOk], 0); 

Abort; 

End; 

ExcelApplication1.Visible[0]:

=True; 

ExcelApplication1.Caption:

='Excel Application'; 

try  

excelapplication1.Workbooks.Open(opendialog1.FileName, 

null,null,null,null,null,null,null,null,null,null,null,null,0);//

打开指定的

EXCEL 

文件

 

except 

begin 

ExcelApplication1.Disconnect;//

出现异常情况时关闭

 

ExcelApplication1.Quit;showmessage('

请选择

EXCEL

电子表格

!

'); 

exit; 

end; 

end; 

ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);//ExcelWorkbook1

Eexcelapplication1

建立连接

 

ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as 

_Worksheet);//Excelworksheet1

Excelworkbook1

建立连接

  

//

开始从

EXCEL

中取数

放到

stringgrid1

取完数后关闭

EXCEL 

for i:

=1 to 1000 do//

最大取值

1000 

for j:

=1 to 6 do 

begin 

if trim(excelworksheet1.cells.item[i+1,1])<>'' then 

begin 

stringgrid1.rowCount:

=i+1; 

stringgrid1.Cells[j,i]:

=ExcelWorksheet1.Cells.Item[i+1,j]; 

e

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 预防医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1