Delphi控制Excel操作全集.docx
《Delphi控制Excel操作全集.docx》由会员分享,可在线阅读,更多相关《Delphi控制Excel操作全集.docx(13页珍藏版)》请在冰豆网上搜索。
![Delphi控制Excel操作全集.docx](https://file1.bdocx.com/fileroot1/2022-11/30/00464e60-14a9-46c9-97f1-79050ccf560a/00464e60-14a9-46c9-97f1-79050ccf560a1.gif)
Delphi控制Excel操作全集
Delphi控制Excel2000操作全集
十分值得收藏的咚咚,对认为有用的人很有用,呵呵
-----------------------------------------
Delphi控制Excel2000
希望这分数据,为论坛中的各位会员关于EXCEL操作的问题提供一些帮助。
同时也希望各位能将自己整理的、或已有的资料共享出来。
这样可以减少大家的「重复劳动」吗?
技术在于交流,经验在于积累!
!
!
!
一.使用动态创建的方法
首先创建Excel对象,使用ComObj:
varExcelApp:
Variant;
ExcelApp:
=CreateOleObject('Excel.Application');
1)显示当前窗口:
ExcelApp.Visible:
=True;
2)更改Excel标题栏:
ExcelApp.Caption:
='应用程序调用MicrosoftExcel';
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
4'].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:
='第&
页';
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)工作表保存:
ifnotExcelApp.ActiveWorkBook.Savedthen
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:
='应用程序调用MicrosoftExcel';
4)添加新工作簿:
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));
5)添加新工作表:
varTemp_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
4'].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:
='第&
页';
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)工作表保存:
ifnotExcelApplication1.ActiveWorkBook.Savedthen
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
varasheet1,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)
我是这样写的:
vari,j:
integer;
ii:
string;
begin
ExcelApplication1.Visible[0]:
=True;
ExcelApplication1.Caption:
='ExcelApplication';
try
ExcelApplication1.Workbooks.Open(ExtractFilePath(paramstr(0))+'文件名.xls',
null,null,null,null,null,null,null,null,null,null,null,null,0);//获取当前路径下的文件并且打开
except
ExcelApplication1.Disconnect;//出现异常情况时关闭
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);//ExcelWorkbook1与Eexcelapplication1建立连接
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1]as_Worksheet);//Excelworksheet1与Excelworkbook1建立连接
fr_jjfenxi.Label3.Caption:
='ExcelWorksheet1.Cells.Item[3,1]';
//ExcelApplication1.WorkBooks1.Close;
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
但是label3却不能显示第三行,第一列中的数据。
请各位指点!
!
!
附说明:
一)使用动态创建的方法
首先创建Excel对象,使用ComObj:
varExcelApp:
Variant;
ExcelApp:
=CreateOleObject('Excel.Application');
1)显示当前窗口:
ExcelApp.Visible:
=True;
2)更改Excel标题栏:
ExcelApp.Caption:
='应用程序调用MicrosoftExcel';
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
4'].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:
='第&
页';
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.拷贝指定区域:
Exce