1、Delphi控制Excel操作全集Delphi控制Excel2000操作全集十分值得收藏的咚咚,对认为有用的人很有用,呵呵Delphi控制Excel2000 希望这分数据,为论坛中的各位会员关于EXCEL操作的问题提供一些帮助。同时也希望各位能将自己整理的、或已有的资料共享出来。这样可以减少大家的重复劳动吗?技术在于交流,经验在于积累!一.使用动态创建的方法首先创建 Excel 对象,使用ComObj:var ExcelApp: Variant;ExcelApp := CreateOleObject( Excel.Application );1) 显示当前窗口:ExcelApp.Visible
2、 := True;2) 更改 Excel 标题栏:ExcelApp.Caption := 应用程序调用 Microsoft Excel;3) 添加新工作簿:ExcelApp.WorkBooks.Add;4) 打开已存在的工作簿:ExcelApp.WorkBooks.Open( C:ExcelDemo.xls );5) 设置第2个工作表为活动工作表:ExcelApp.WorkSheets2.Activate; 或 ExcelApp.WorksSheets Sheet2 .Activate;6) 给单元格赋值:ExcelApp.Cells1,4.Value := 第一行第四列;7) 设置指定列的宽
3、度(单位:字符个数),以第一列为例:ExcelApp.ActiveSheet.Columns1.ColumnsWidth := 5;8) 设置指定行的高度(单位:磅)(1磅0.035厘米),以第二行为例:ExcelApp.ActiveSheet.Rows2.RowHeight := 1/0.035; / 1厘米9) 在第8行之前插入分页符:ExcelApp.WorkSheets1.Rows8.PageBreak := 1;10) 在第8列之前删除分页符:ExcelApp.ActiveSheet.Columns4.PageBreak := 0;11) 指定边框线宽度:ExcelApp.Activ
4、eSheet.Range B34 .Borders2.Weight := 3;1-左 2-右 3-顶 4-底 5-斜( ) 6-斜( / )12) 清除第一行第四列单元格公式:ExcelApp.ActiveSheet.Cells1,4.ClearContents;13) 设置第一行字体属性:ExcelApp.ActiveSheet.Rows1.Font.Name := 隶书;ExcelApp.ActiveSheet.Rows1.Font.Color := clBlue;ExcelApp.ActiveSheet.Rows1.Font.Bold := True;ExcelApp.ActiveShe
5、et.Rows1.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
6、: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
7、 := 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 .PasteSpe
8、cial;d.从文件尾部开始粘贴:ExcelApp.ActiveSheet.Range.PasteSpecial;16) 插入一行或一列:a. ExcelApp.ActiveSheet.Rows2.Insert;b. ExcelApp.ActiveSheet.Columns1.Insert;17) 删除一行或一列:a. ExcelApp.ActiveSheet.Rows2.Delete;b. ExcelApp.ActiveSheet.Columns1.Delete;18) 打印预览工作表:ExcelApp.ActiveSheet.PrintPreview;19) 打印输出工作表:ExcelAp
9、p.ActiveSheet.PrintOut;20) 工作表保存:if not ExcelApp.ActiveWorkBook.Saved thenExcelApp.ActiveSheet.PrintPreview;21) 工作表另存为:ExcelApp.SaveAs( C:ExcelDemo1.xls );22) 放弃存盘:ExcelApp.ActiveWorkBook.Saved := True;23) 关闭工作簿:ExcelApp.WorkBooks.Close;24) 退出 Excel:ExcelApp.Quit;二.使用Delphi 控件方法在Form中分别放入ExcelApplic
10、ation, ExcelWorkbook和ExcelWorksheet。 1) 打开Excel ExcelApplication1.Connect;2) 显示当前窗口:ExcelApplication1.Visible0:=True;3) 更改 Excel 标题栏:ExcelApplication1.Caption := 应用程序调用 Microsoft Excel;4) 添加新工作簿:ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0);5) 添加新工作表:var Temp_Worksheet: _Wor
11、kSheet;beginTemp_Worksheet:=ExcelWorkbook1.WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet;ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);End;6) 打开已存在的工作簿:ExcelApplication1.Workbooks.Open (c:a.xlsEmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,Empt
12、yParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)7) 设置第2个工作表为活动工作表:ExcelApplication1.WorkSheets2.Activate; 或ExcelApplication1.WorksSheets Sheet2 .Activate;8) 给单元格赋值:ExcelApplication1.Cells1,4.Value := 第一行第四列;9) 设置指定列的宽度(单位:字符个数),以第一列为例:ExcelApplication1.ActiveSheet.Columns1.ColumnsWidth := 5;10)
13、 设置指定行的高度(单位:磅)(1磅0.035厘米),以第二行为例:ExcelApplication1.ActiveSheet.Rows2.RowHeight := 1/0.035; / 1厘米11) 在第8行之前插入分页符:ExcelApplication1.WorkSheets1.Rows8.PageBreak := 1;12) 在第8列之前删除分页符:ExcelApplication1.ActiveSheet.Columns4.PageBreak := 0;13) 指定边框线宽度:ExcelApplication1.ActiveSheet.Range B34 .Borders2.Weig
14、ht := 3;1-左 2-右 3-顶 4-底 5-斜( ) 6-斜( / )14) 清除第一行第四列单元格公式:ExcelApplication1.ActiveSheet.Cells1,4.ClearContents;15) 设置第一行字体属性:ExcelApplication1.ActiveSheet.Rows1.Font.Name := 隶书;ExcelApplication1.ActiveSheet.Rows1.Font.Color := clBlue;ExcelApplication1.ActiveSheet.Rows1.Font.Bold := True;ExcelApplicat
15、ion1.ActiveSheet.Rows1.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.Acti
16、veSheet.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.PageS
17、etup.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.Active
18、Sheet.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.Rows2.Insert;b. ExcelApplication1.ActiveSheet.Col
19、umns1.Insert;19) 删除一行或一列:a. ExcelApplication1.ActiveSheet.Rows2.Delete;b. ExcelApplication1.ActiveSheet.Columns1.Delete;20) 打印预览工作表:ExcelApplication1.ActiveSheet.PrintPreview;21) 打印输出工作表:ExcelApplication1.ActiveSheet.PrintOut;22) 工作表保存:if not ExcelApplication1.ActiveWorkBook.Saved thenExcelApplicati
20、on1.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, Ex
21、celWorkbook和ExcelWorksheetvar asheet1,achart, range:variant;1)选择当第一个工作薄第一个工作表asheet1:=ExcelApplication1.Workbooks1.Worksheets1;2)增加一个二维图achart:=asheet1.chartobjects.add(100,100,200,200);3)选择二维图的形态achart.chart.charttype:=4;4)给二维图赋值series:=achart.chart.seriescollection;range:=sheet1!r2c3:r3c9;series.a
22、dd(range,true);5)加上二维图的标题achart.Chart.HasTitle:=True;achart.Chart.ChartTitle.Characters.Text:= Excle二维图 6)我是这样写的:var i,j:integer;ii:string;beginExcelApplication1.Visible0:=True;ExcelApplication1.Caption:=Excel Application;tryExcelApplication1.Workbooks.Open(ExtractFilePath(paramstr(0)+文件名.xls,null,n
23、ull,null,null,null,null,null,null,null,null,null,null,0); /获取当前路径下的文件并且打开exceptExcelApplication1.Disconnect;/出现异常情况时关闭ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks1);/ExcelWorkbook1与Eexcelapplication1建立连接ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets1 as _Worksheet);/Excelworksheet1与Exce
24、lworkbook1建立连接fr_jjfenxi.Label3.Caption:=ExcelWorksheet1.Cells.Item3,1;/ExcelApplication1.WorkBooks1.Close;ExcelApplication1.Disconnect;ExcelApplication1.Quit;但是label3却不能显示第三行,第一列中的数据。请各位指点!附说明:一) 使用动态创建的方法首先创建 Excel 对象,使用ComObj:var ExcelApp: Variant;ExcelApp := CreateOleObject( Excel.Application );
25、1) 显示当前窗口:ExcelApp.Visible := True;2) 更改 Excel 标题栏:ExcelApp.Caption := 应用程序调用 Microsoft Excel;3) 添加新工作簿:ExcelApp.WorkBooks.Add;4) 打开已存在的工作簿:ExcelApp.WorkBooks.Open( C:ExcelDemo.xls );5) 设置第2个工作表为活动工作表:ExcelApp.WorkSheets2.Activate; 或 ExcelApp.WorksSheets Sheet2 .Activate;6) 给单元格赋值:ExcelApp.Cells1,4.
26、Value := 第一行第四列;7) 设置指定列的宽度(单位:字符个数),以第一列为例:ExcelApp.ActiveSheet.Columns1.ColumnsWidth := 5;8) 设置指定行的高度(单位:磅)(1磅0.035厘米),以第二行为例:ExcelApp.ActiveSheet.Rows2.RowHeight := 1/0.035; / 1厘米9) 在第8行之前插入分页符:ExcelApp.WorkSheets1.Rows.PageBreak := 1;10) 在第8列之前删除分页符:ExcelApp.ActiveSheet.Columns4.PageBreak := 0;1
27、1) 指定边框线宽度:ExcelApp.ActiveSheet.Range B34 .Borders2.Weight := 3;1-左 2-右 3-顶 4-底 5-斜( ) 6-斜( / )12) 清除第一行第四列单元格公式:ExcelApp.ActiveSheet.Cells1,4.ClearContents;13) 设置第一行字体属性:ExcelApp.ActiveSheet.Rows1.Font.Name := 隶书;ExcelApp.ActiveSheet.Rows1.Font.Color := clBlue;ExcelApp.ActiveSheet.Rows1.Font.Bold :
28、= True;ExcelApp.ActiveSheet.Rows1.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.HeaderM
29、argin := 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
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1