DELPHI操作EXCEL
- 格式:docx
- 大小:21.68 KB
- 文档页数:8
delphi读取excel两种⽅法两种⽅法,⼀是⽤ADO连接,问题是Excel⽂件内容要规则,⼆是⽤OLE打开,但操作就没有象操作数据库那么⽅便了.⼀、⽤ADO连接:设置属性ConnetionString选择 Microsoft Jet 4.0 OLE DB providerSelect or enter a datasorce name -> 选择你要打开Excel⽂件User name默认是Admin 密码默认为空,可以不⽤理会Extended properties 设为:Excel 8.0sql语句 select * from [yourtablename] (注意要有[])⼆、⽤OLE打开(以下是⼀个范例,注释掉的代码也是有⽤的语句,注意要uses ExtCtrls,ComObj单元):var ExcelApp:Variant;beginExcelApp:=CreateOleObject('Excel.Application');//ExcelApp.visible:=true;ExcelApp.Caption:='应⽤程序调⽤ Microsoft Excel';ExcelApp.WorkBooks.Add; //新增⼯作簿//ExcelApp.workBooks.Open('C:\My Documents\Ca09lin1.xls'); //打开已存在⼯作簿ExcelApp.Worksheets[2].activate; //打开第2个⼯作表//ExcelApp.WorkSheets['第四章'].activate; //打开名为第四章的⼯作表ExcelApp.Cells[1,4].Value:='第⼀⾏第四列';ExcelApp.Cells[1,5].Value:='第⼀⾏第五列';ExcelApp.ActiveSheet.Columns[4].ColumnWidth:=15;ExcelApp.ActiveSheet.Rows[1].RowHeight:=15;//ExcelApp.WorkSheets[1].Rows[8].PageBreak:=1; //设置分页符,但似⽆效//Excelapp.ActiveSheet.Rows[8].PageBreak:=1; //同上ExcelApp.ActiveSheet.Range['B3:D4'].Borders[2].Weight:=3;ExcelApp.ActiveSheet.Range['B3:D4'].Borders[1].Weight:=3;ExcelApp.ActiveSheet.Range['B3:D4'].Borders[3].Weight:=3;ExcelApp.ActiveSheet.Range['B3:D4'].Borders[4].Weight:=3;//ExcelApp.ActiveSheet.Range['B3:D4'].Borders[5].Weight:=3; //会直接在范围内的各Cell内加上斜杠|//ExcelApp.ActiveSheet.Range['B3:D4'].Borders[6].Weight:=3; //与上句类似//Bordrs:1-左 2-右 3-顶 4-底 5-斜( \ ) 6-斜( / )ExcelApp.Cells[3,2].Value:='三⾏⼆列';ExcelApp.Cells[3,3].Value:='三⾏三列';ExcelApp.Cells[3,4].Value:='三⾏四列';ExcelApp.Cells[4,2].Value:='四⾏⼆列';ExcelApp.Cells[4,3].Value:='四⾏三列';ExcelApp.Cells[4,4].Value:='四⾏四列';//ExcelApp.ActiveSheet.Range['B3:D4'].Value.CopyToClipBoard;ExcelApp.activeSheet.Cells[1,4].ClearContents; //清除⼀⾏四列的内容,activeSheet可以省略Excelapp.Rows[3]:='⾪书'; //这⾥Rows前省略了activeSheet,但针对也只是当前⼯作表⽽⾮整个⼯作簿ExcelApp.Rows[3].font.Color:=clBlue;ExcelApp.Rows[3].Font.Bold:=True;ExcelApp.Rows[3].Font.UnderLine:=True;ExcelApp.Range['B3:D4'].Copy;RichEdit1.PasteFromClipboard;//ExcelApp.ActiveSheet.PageSetup.CenterFooter:='第$P页';//所有页⾯设置(PageSetup的属性)都不能进⾏,不知为何//ExcelApp.ActiveSheet.PrintPreview; //打印预览//ExcelApp.ActiveSheet.PrintOut; //直接打印输出//if not ExcelApp.ActiveWorkBook.Saved then //⼯作表保存:// ExcelApp.ActiveSheet.PrintPreview;//ExcelApp.SaveAs( 'C:\Excel\Demo1.xls' ); //⼯作表另存为ExcelApp.ActiveWorkBook.Saved := True; // 放弃存盘ExcelApp.WorkBooks.Close; //关闭⼯作簿ExcelApp.Quit; //退出 ExcelExcelApp:=Unassigned;//释放excel进程end;另:得到excel的⾏数、列数:Maxc :=ExlApp.WorkSheets[1].UsedRange.Columns.Count;Maxr :=ExlApp.WorkSheets[1].UsedRange.Rows.Count;得到列宽a:=createoleobject('excel.application');a.workbooks.add;a.activecell.columnwidth:=10; showmessage(inttostr(a.activecell.columnwidth));。
怎么在delphi中读取Excel数据(各种详细操作)转( 一) 使用动态创建的方法首先创建Excel 对象,使用ComObj :VarExcelApp : 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 ] := '' 隶书'' ;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.拷贝整个工作表:ed.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 ThenExcelApp.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。
【Delphi】汇出Excel时,Excel单元格格式设置(附Delphi操作Excel方法)一个例子:excelworksheet1.Cells.Item[row,3]. numberformatlocal:='$#,##0.00;[红色]-$#,##0.00';excelworksheet1.Cells.Item[row,3].Formula:='=SUM(R[-'+inttostr(row-rowflag+1)+']C:R[-1]C)';excelworksheet1.Cells.Item[row,3].Borders[3].LineStyle :=xlContinuous; excelworksheet1.Cells.Item[row,3].Borders[4].LineStyle :=xlDouble; excelworksheet1.Cells.Item[row,4].Borders[3].LineStyle :=xlContinuous; excelworksheet1.Cells.Item[row,4].Borders[4].LineStyle :=xlDouble; excelworksheet1.Cells.Item[row,4].Formula:='=R[-1]C';注:不知道公式及格式,均可通过录制宏找出对应公式及格式。
效果如下图:资料来自网络单元格设置1.设置单元格线框Excel.ActiveSheet.Range[B10:C13].Borders[N].LineStyle := xlNoneExcel.ActiveSheet.Range[B10:C13].Borders[N].Weight := xlThin边框的类型 Borders[N]xlEdgeLeft 左=1xlEdgeRight 右=2xlEdgeTop 顶=3xlEdgeBottom 底=4xlDiagonalUp 左上右下=5xlDiagonalDown 左下右上=6xlEdgeLeft 外部左边框=7xlEdgeTop 外部上边框=8xlEdgeBottom 外部下边框=9xlEdgeRight 外部右边框=10xlInsideVertical 内部竖线=11xlInsideHorizontal 内部横线=12(其中1:为左 2:右 3:顶 4:底 5:斜\ 6:斜/)线条类型LineStyle,宽度Weight单条线的LineStyle := xlContinuous双条线的LineStyle := xlDouble虚线 xlHairline 1实线 xlThin中实线 xlMedium粗实线 xlThick2.给单元格赋值:Excel.Cells[1,4].Value := 第一行第四列;3.设置第一行字体属性(隶书,蓝色,加粗,下划线):Excel.ActiveSheet.Rows[1] := 隶书; Excel.ActiveSheet.Rows[1].Font.Color := clBlue; Excel.ActiveSheet.Rows[1].Font.Bold := True; Excel.ActiveSheet.Rows[1].Font.UnderLine := True;4.设置整个表字体为9Excel.Cells.Font.Size:=9;5.在第8行之前插入/删除分页符:Excel.WorkSheets[1].Rows[8].PageBreak := 1; (0为删除)6.清除第一行第四列单元格公式:Excel.ActiveSheet.Cells[1,4].ClearContents;7.从数字类型转换成文本类型(不知道格式化字符串,请录制宏,抽出宏中格式化字符串。
usesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,ComObj;typeTForm1 = class(TForm)Edit1: TEdit;Button1: TButton;procedure Button1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;Excel1: Variant;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);beginbeginexcel1 := CreateOleObject('Excel.Application');excel1.WorkBooks.Open('D:\55\aa.xls');excel1.WorkSheets['sheet1'].Activate;excel1.Cells[1, 4].value:=56+23;//表示单元格excel1.ActiveSheet.Columns[4].Insert;//插入列excel1.Cells.Columns.AutoFit;//自动列大小excel1.visible := true;//是excel可见。
excel1.WorkSheets[2].Activate;excel1.cells[2,2].value:=44;end;end;delphi对于excel的一般操作资料来自网络单元格设置1.设置单元格线框Excel.ActiveSheet.Range[B10:C13].Borders[N].LineStyle := xlNone Excel.ActiveSheet.Range[B10:C13].Borders[N].Weight := xlThin边框的类型Borders[N]xlEdgeLeft 左=1xlEdgeRight 右=2xlEdgeTop 顶=3xlEdgeBottom 底=4xlDiagonalUp 左上右下=5xlDiagonalDown 左下右上=6xlEdgeLeft 外部左边框=7xlEdgeTop 外部上边框=8xlEdgeBottom 外部下边框=9xlEdgeRight 外部右边框=10xlInsideVertical 内部竖线=11xlInsideHorizontal 内部横线=12(其中1:为左2:右3:顶4:底5:斜\ 6:斜/)线条类型LineStyle,宽度Weight单条线的LineStyle := xlContinuous双条线的LineStyle := xlDouble虚线xlHairline 1实线xlThin中实线xlMedium粗实线xlThick2.给单元格赋值:Excel.Cells[1,4].Value := 第一行第四列;3.设置第一行字体属性(隶书,蓝色,加粗,下划线):Excel.ActiveSheet.Rows[1] := 隶书; Excel.ActiveSheet.Rows[1].Font.Color := clBlue; Excel.ActiveSheet.Rows[1].Font.Bold := True;Excel.ActiveSheet.Rows[1].Font.UnderLine := True;4.设置整个表字体为9Excel.Cells.Font.Size:=9;5.在第8行之前插入/删除分页符:Excel.WorkSheets[1].Rows[8].PageBreak := 1; (0为删除) 6.清除第一行第四列单元格公式:Excel.ActiveSheet.Cells[1,4].ClearContents;7.从数字类型转换成文本类型(不知道格式化字符串,请录制宏,抽出宏中格式化字符串。
如何在Delphi中操作Excel在数据库应用软件的开发过程中,经常需要把数据转换成Excel文件,让用户作进一步的数据处理。
而Delphi是开发数据库应用系统的常用工具,那么,如何在Delphi中操作Excel呢?我们知道,在Microsoft Office软件中有一种内嵌的编程语言VBA,它是一种宏语言,利用它,你可以编写出功能强大的代码,如打开文件、修改数据、保存数据和设置字体等。
另一方面,Microsoft Office软件中的宏能以VBA代码的形式记录下你的操作过程。
因此借助宏操作,可以很轻松地实现某一功能,并把这些代码稍作修改嵌入到你的软件中。
但是VBA也存在一个缺点,它必须有Microsoft Office作平台,在哪里编写,必须在哪里执行。
例如在Excel下编写的一段VBA代码,则它只有在Excel下才能运行。
因此,笔者的方法就是把VBA代码嵌入到Delphi中,从而实现用Delphi操作Excel。
下面,我们以Delphi程序为例,说明这种调用方法:Unit excel;interfaceusesWindows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs, StdCtrls,ComObj;//ComObj是操作OLE对象的函数集type TForm1 =class(TForm)Button1: TButton;procedure Button1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);vareclApp,WorkBook:Variant;//声明为OLE Automation 对象xlsFileName:string;beginxlsFileName:=‘ex.xls‘;try//创建OLE对象Excel Application与 WorkBookeclApp:=CreateOleObject(‘Excel.Application‘);WorkBook:=CreateOleobject(‘Excel.Sheet‘);exceptShowMessage(‘您的机器里未安装Microsoft Excel。
delphi excel 例程Delphi Excel 例程:一步一步回答在Delphi中,我们可以使用Excel 例程来实现与Excel文件的交互。
Excel 例程是一组可以通过Delphi编程语言来操作Excel文件的方法和函数。
本文将介绍如何使用Delphi和Excel 例程来创建、读取、写入和操作Excel 文件。
第一步:安装Excel 例程要开始使用Delphi和Excel 例程,我们首先需要安装Excel 例程库。
这可以通过三种方法之一来实现:1. 使用ActiveX组件:在Delphi IDE的“Component”菜单下,选择“Import ActiveX Control”。
在弹出的窗口中,选择“Microsoft Excel xx.x Object Library”(其中"xx.x"表示Excel版本号),然后点击“Install”按钮进行安装。
2. 使用第三方库:你还可以使用第三方库,如TExcelComponent或Flexcel,它们提供了更多的功能和灵活性。
3. 编写自己的Excel 例程:如果你对编程充满信心,你可以自己编写一组Excel 例程,以与Excel文件交互。
不过,这需要一些时间和努力。
第二步:创建一个新的Excel文件在使用Delphi和Excel 例程之前,我们首先需要创建一个Excel文件。
下面是示例代码,展示了如何使用Excel 例程来创建和保存一个新的Excel文件:delphivarExcelApp: Variant;ExcelWorkbook: Variant;ExcelWorksheet: Variant;begin创建Excel应用程序对象ExcelApp := CreateOleObject('Excel.Application');创建一个新的工作簿ExcelWorkbook := ExcelApp.Workbooks.Add;获取第一个工作表ExcelWorksheet := ExcelWorkbook.Worksheets.Item[1];设置单元格的值ExcelWorksheet.Cells[1, 1].Value := 'Hello'; ExcelWorksheet.Cells[1, 2].Value := 'World!';保存工作簿ExcelWorkbook.SaveAs('C:\NewExcelFile.xlsx');关闭Excel应用程序ExcelApp.Quit;end;通过这段代码,我们可以创建一个新的Excel应用程序对象,并在其中创建一个新的工作簿。
一、使用单元:Use :EXCEL 2000, ComObj二、定义var ExcelApp,Sheet,Range: Variant;注释:ExcelApp 为定义的Excel 对象Sheet 为定义的工作表(Sheet)对象Range 为定义的工作表范围三、关于Excel 对象创建初始化以及工作表、工作表范围的初始化1. 创建excel对象:ExcelApp := CreateOleObject( 'Excel.Application' );2. 显示当前窗口:ExcelApp.Visible := True;3. 更改Excel 标题栏:ExcelApp.Caption := '应用程序调用Microsoft Excel';4. 添加新工作簿:ExcelApp.WorkBooks.Add;5 打开已存在的工作簿:ExcelApp.WorkBooks.Open(FilePath);6.设置工作簿默认工作表张数ExcelApp.SheetsInNewWorkbook := 1;7.设置工作表名称ExcelApp.Workbooks[WorkbookNum].WorkSheets[WorkSheetNum].Name := PName;8.工作表初始化Sheet:= ExcelApp.Workbooks[WorkbookNum].WorkSheets[WorkSheetNum];9.工作表范围初始化Range := Sheet.Range['A1:DL1'] ;10.设置第2个工作表为活动工作表:ExcelApp.WorkSheets[2].Activate;或ExcelApp.WorksSheets[ 'Sheet2' ].Activate;三、单元格赋值设置数值类型1. 给单元格赋值:ExcelApp.Cells[row, column].Value := '第一行第四列';或Sheet.Cells[row, column] := ‘第一行第四列’;2 清除第一行第四列单元格公式:ExcelApp.ActiveSheet.Cells[row,column].ClearContents;或Sheet.Cells[row,column]. ClearContents3设置单元格数值类型为文字型Range.NumberFormatLocal := '@';四、设置列宽和行高1. 设置指定列的宽度(单位:字符个数):ExcelApp.ActiveSheet.Columns[column].ColumnsWidth := 5;或Sheet.Columns[column].ColumnWidth := 5;2.设置指定行的高度(单位:磅)(1磅=0.035厘米)ExcelApp.ActiveSheet.Rows[row].RowHeight := 1/0.035; // 1厘米或Sheet. Rows [row]. RowHeight:= 1/0.035;五、对齐方式1.水平对齐Range.HorizontalAlignment:=xlCenter; 居中Range.HorizontalAlignment:=xlLeft;居左Range.HorizontalAlignment:=xlRight;居右或Sheet.Cells[row,column].HorizontalAlignment:=xlCenter; 居中Sheet.Cells[row,column].HorizontalAlignment:=xlLeft;居左Sheet.Cells[row,column].HorizontalAlignment:=xlRight;居右2.垂直对齐Range. VerticalAlignment:=xlCenter; 居中Range. VerticalAlignment:= xltop;顶端对齐Range. VerticalAlignment:= xlbottomfont;底部对齐或Sheet.Cells[row,column]. VerticalAlignment:=xlCenter; 居中Sheet.Cells[row,column]. VerticalAlignment:= xltop;顶端对齐Sheet.Cells[row,column]. VerticalAlignment:= xlbottomfont; 底部对齐六、文字控制1.自动换行Range.WrapText:=true;或Sheet.Cells[row,column]. WrapText:=true;2.合并单元格Sheet.range['A17:G17'].Merge;3.跨越合并Sheet.range['C27:D34'].Merge(true);七、字型设置1.设置字体大小Range.Characters.Font.Size := 10;或Sheet.Cells[row,column].Characters.Font.Size := 10;2.字体加重Range.Characters.Font. Bold:= true;或Sheet.Cells[row,column].Characters.Font. Bold:= true;3.字体倾斜Range.Characters.Font. Italic:= true;或Sheet.Cells[row,column].Characters.Font. Italic:= true;4.字体:=’楷体_GB2312'或Sheet.Cells[row,column].Characters.Font. Name:=’楷体_GB2312’5字体样式(常规,斜体,粗体,粗斜体)Range.Characters.Font.FontStyle:=’常规'或Sheet.Cells[row,column].Characters.Font.FontStyle:=’常规'6.下划线Range.Characters.Font.UnderLine := True;或Sheet.Cells[row,column].Characters.Font.UnderLine := True;八、分页符操作1.在第8行之前插入分页符:ExcelApp.WorkSheets[1].Rows.PageBreak := 1;或Sheet. Rows. PageBreak := 1;或Range. Rows. PageBreak := 1;2.在第8列之前删除分页符:ExcelApp.ActiveSheet.Columns[4].PageBreak := 0;或Sheet.Columns[4]. PageBreak := 0;或Range.Columns[4].PageBreak :=0;九、关于边框的操作:Border :1-左2-右3-顶4-底5-斜( \ ) 6-斜( / )1.指定边框线宽度:ExcelApp.ActiveSheet.Range[ 'B3:D4' ].Borders[Border].Weight := 3;或Sheet. Borders[Border].Weight := 3;或Range Borders[Border].Weight := 3;2.边框线线条形状Sheet.Borders[Border].linestyle :=1;或Range.Borders[Border]. Linestyle := 1;Linestyle 1:实线2 虚线12 双横线十、关于颜色1. 设置单元格背景色Sheet.Cells[row,column].Interior.ColorIndex := 38;或Range.Interior.ColorIndex := 38;2.字体颜色Range.Characters.Font.Colorindex:=6;或Sheet.Cells[row,column].Characters.Font.Colorindex:=6 Colorindex的值十一、冻结窗口Sheet.Cells[2,3].select;ExcelApp.ActiveWindow.FreezePanes := True;十二、打印设置1.页眉:Sheet.PageSetup.CenterHeader := '报表演示';2.页脚:Sheet.PageSetup.CenterFooter := '第&P页';3页眉到顶端边距2cm:Sheet.PageSetup.HeaderMargin := 2/0.035;4.页脚到底端边距3cm:Sheet.PageSetup.HeaderMargin := 3/0.035;5.顶边距2cm:Sheet.PageSetup.TopMargin := 2/0.035;6.底边距2cm:Sheet.PageSetup.BottomMargin := 2/0.035;7.左边距2cm:Sheet.PageSetup.LeftMargin := 2/0.035;8.右边距2cm:Sheet.PageSetup.RightMargin := 2/0.035;9.页面水平居中:Sheet.PageSetup.CenterHorizontally := 2/0.035;10.页面垂直居中:Sheet.PageSetup.CenterVertically := 2/0.035;11.打印单元格网线:Sheet.PageSetup.PrintGridLines := True;12缩放比例Sheet.PageSetup.zoom := 75;13横向打印Sheet.PageSetup.Orientation:= xllandscape;14 纵向打印Sheet.PageSetup.Orientation:=xlportrait;15.设置打印标题行Sheet.PageSetup.PrintTitleRows := Sheet.Rows['1:3'].Address ;Sheet.PageSetup.PrintTitleColumns := Sheet.Rows[3].Address;16.打印预览工作表:Sheet.PrintPreview;17 打印输出工作表:Sheet.PrintOut;十三、拷贝操作:1.拷贝整个工作表:ed.Range.Copy;2. b.拷贝指定区域:Sheet.Range[ 'A1:E2' ].Copy;3.从A1位置开始粘贴:Sheet.Range.[ 'A1' ].PasteSpecial;4.从文件尾部开始粘贴:Sheet.Range.PasteSpecial;十四、行列的插入删除1. 插入一行或一列:a. ExcelApp.ActiveSheet.Rows[2].Insert;b. ExcelApp.ActiveSheet.Columns[1].Insert;2. 删除一行或一列:a. ExcelApp.ActiveSheet.Rows[2].Delete;b. ExcelApp.ActiveSheet.Columns[1].Delete;十五、Excel保存关闭1.工作表保存:if not ExcelApp.ActiveWorkBook.Saved thenExcelApp.ActiveSheet.PrintPreview;2.工作表另存为:ExcelApp. SaveAs ( filepath);3 放弃存盘:ExcelApp.ActiveWorkBook.Saved := True;4. 关闭工作簿:ExcelApp.WorkBooks.Close;5. 退出Excel:ExcelApp.Quit;6. 工作表关闭ExcelApp.WorkBooks.Close ;十六、其他1. 已经使用的行数edRange.Rows.Count;(三)使用Delphi控制Excel二维图在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.chartype:=4;4)给二维图赋值series:=achart.chart.seriescollection;range:=sheet1!r2c3:r3c9;series.add(range,true);5)加上二维图的标题achart.Chart.HasTitle:=True;achart.Chart.ChartTitle.Characters.Text:=’Excel二维图’6)改变二维图的标题字体大小achart.Chart.ChartTitle.Font.size:=6;7)给二维图加下标说明achart.Chart.Axes(xlCategory,xlPrimary).HasTitle:=True;achart.Chart.Axes(xlCategory,xlPrimary).AxisTitle.Characters.Text:=’下标说明’;8)给二维图加左标说明achart.Chart.Axes(xlValue,xlPrimary).HasTitle:=True;achart.Chart.Axes(xlValue,xlPrimary).AxisTitle.Characters.Text:=’左标说明’;9)给二维图加右标说明achart.Chart.Axes(xlValue,xlSecondary).HasTitle:=True;achart.Chart.Axes(xlValue,xlSecondary).AxisTitle.Characters.Text:=’右标说明’;10)改变二维图的显示区大小achart.Chart.PlotArea.Left:=5;achart.Chart.PlotArea.Width:=223;achart.Chart.PlotArea.Height:=108;11)给二维图坐标轴加上说明achart.chart.seriescollection[1].NAME:=’坐标轴说明’;。
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] := '隸書';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.拷貝整個工作表:ed.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 thenExcelApp.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。
Delphi控制Excel2000操作全集十分值得收藏的咚咚,对认为有用的人很有用,呵呵-----------------------------------------Delphi控制Excel2000希望这分数据,为论坛中的各位会员关于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['B34'].Borders[2].Weight:=3; 1-左2-右3-顶4-底5-斜(\)6-斜(/)12)清除第一行第四列单元格公式:ExcelApp.ActiveSheet.Cells[1,4].ClearContents;13)设置第一行字体属性:ExcelApp.ActiveSheet.Rows[1]:='隶书'; 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.拷贝整个工作表:ed.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。
Delphi 操作EXCEL —— EXCEL workbook.saveas 函数详解本问所有资料来自于Excel2003 VBA帮助文件,张荣整理,适用于DELPHI,VB的高级语言操作Excel用ExcelApplication.WorkBook.SaveAs(filename,FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodePage, TextVisualLayout ,Local)1、Filename: Variant 类型,可选。
该字符串表示要保存的文件名。
可包含完整路径。
如果不指定路径,Microsoft Excel 将文件保存到当前文件夹中。
2、FileFormat: Variant 类型,可选。
保存文件时使用的文件格式。
要得到有效选项的列表,请参阅FileFormat 属性。
对于已有文件,其默认格式是上次指定的文件格式;对于新文件,默认格式为当前使用的Excel 版本格式,可选常数如下:xlAddIn 18xlCSV 6xlCSVMac 22xlCSVMSDOS 24xlCSVWindows 23xlCurrentPlatformText -4158xlDBF2 7xlDBF3 8xlDBF4 11xlDIF 9xlExcel2 16xlExcel2FarEast 27xlExcel3 29xlExcel4 33xlExcel4Workbook 35xlExcel5 39xlExcel7 39xlExcel9795 43xlHtml 44xlIntlAddIn 26xlIntlMacro 25xlSYLK 2xlTemplate 17xlTextMac 19xlTextMSDOS 21xlTextPrinter 36xlTextWindows 20xlUnicodeText 42xlWebArchive 45xlWJ2WD1 14xlWJ3 40xlWJ3FJ3 41xlWK1 5xlWK1ALL 31xlWK1FMT 30xlWK3 15xlWK3FM3 32xlWK4 38xlWKS 4xlWorkbookNormal -4143xlWorks2FarEast 28xlWQ1 34xlXMLData 47xlXMLSpreadsheet 463、Password :Variant 类型,可选。
Delphi对Excel的所有操作学完这个你就成为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.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] := '隶书';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.拷贝整个工作表:ed.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 thenExcelApp.ActiveSheet.PrintPreview;21) 工作表另存为:ExcelApp.SaveAs( 'C:\Excel\Demo1.xls' );22) 放弃存盘:ExcelApp.ActiveWorkBook.Saved := True;23) 关闭工作簿:ExcelApp.WorkBooks.Close;24) 退出 Excel:ExcelApp.Quit;25) 行、列自适应ExcelApp.ActiveSheet.Rows[2].AutoFit;ExcelApp.Columns['A:E'].AutoFit;26) 合并单元格ExcelID.Range['A1:I1'].select;ExcelID.Selection.HorizontalAlignment := xlCenter;ExcelID.Selection.VerticalAlignment := xlCenter;ExcelID.Selection.ReadingOrder := xlContext;ExcelID.Selection.Merge;(二) 使用Delphi 控件方法在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet。
如何在DELPHI中操作EXCEL电子表格如何在DELPHI中操作EXCEL电子表格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;beginopendialog1.InitialDir:=ExtractFileDir(paramstr(0));//文件的打存放初始路径opendialog1.Execute;TryExcelApplication1.Connect;//EXCEL应用程序ExceptMessageDlg('Excel may not be installed',mtError, [mbOk], 0);Abort;End;ExcelApplication1.Visible[0]:=True;ExcelApplication1.Caption:='Excel Application';tryexcelapplication1.Workbooks.Open(opendialog1.FileName,null,null,null,null,null,null,null,null,null,null,null,null,0);//打开指定的EXCEL 文件exceptbeginExcelApplication1.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中,取完数后关闭EXCELfor i:=1 to 1000 do//最大取值1000for j:=1 to 6 dobeginif trim(excelworksheet1.cells.item[i+1,1])<>'' thenbeginstringgrid1.rowCount:=i+1;stringgrid1.Cells[j,i]:=ExcelWorksheet1.Cells.Item[i+1,j];endelsebeginlabel3.caption:=inttostr(i-1);ExcelApplication1.Disconnect;ExcelApplication1.Quit;//将第一条数据赋给编辑框edit2.text:=stringgrid1.Cells[1,1];edit1.text:=stringgrid1.Cells[2,1];edit3.text:=stringgrid1.Cells[3,1];edit4.text:=stringgrid1.Cells[4,1];edit5.text:=stringgrid1.Cells[5,1];exit;end;end;end;三、'下一条记录'按钮,完成记录向下移动,代码如下: procedure TForm1.Button2Click(Sender: TObject); var x:integer;beginx:=stringgrid1.row+1;if x<> stringgrid1.RowCount thenbeginstringgrid1.row:=stringgrid1.row+1;label1.caption:=inttostr(x);edit2.text:=stringgrid1.Cells[1,x];edit1.text:=stringgrid1.Cells[2,x];edit3.text:=stringgrid1.Cells[3,x];edit4.text:=stringgrid1.Cells[4,x];edit5.text:=stringgrid1.Cells[5,x];exit;endelseshowmessage('已到第一条记录!');end;四、'上一条记录',完成记录上移,代码如下:var x:integer;beginx:=stringgrid1.row-1;if x<>0 thenbeginstringgrid1.row:=stringgrid1.row-1;label1.caption:=inttostr(x);edit2.text:=stringgrid1.Cells[1,x];edit1.text:=stringgrid1.Cells[2,x];edit3.text:=stringgrid1.Cells[3,x];edit4.text:=stringgrid1.Cells[4,x];edit5.text:=stringgrid1.Cells[5,x];exit;endelseshowmessage('已到最后一条记录!');end;五、stringgrid中上下移动时代码:procedure TForm1.StringGrid1Click(Sender: TObject);var i:integer;begini:=stringgrid1.Row;label1.caption:=inttostr(i);edit1.text:=stringgrid1.Cells[2,i];edit2.text:=stringgrid1.Cells[1,i];edit3.text:=stringgrid1.Cells[3,i];edit4.text:=stringgrid1.Cells[4,i];edit5.text:=stringgrid1.Cells[5,i];end;六、运行程序,点击按钮1打开excel表格。
DEPHI操作EXCEL的例子var Form1: TForm1;ExcelApp: Variant;implementation{$R*.dfm}procedure TForm1.FormCreate(Sender: TObject);beginExcelApp := CreateOleObject( …Excel.Application‟ );end;procedure TForm1.Button1Click(Sender: TObject);begin//E xcelApp.WorkBooks.Open(…c:\1.xls‟ );ExcelApp.WorkBooks.Open(ExtractFileDir(application.ExeName)+‟\2.xls‟);ExcelApp.Visible := True;end;procedure TForm1.Button2Click(Sender: TObject);beginexcelapp.workbooks.close;end;procedure TForm1.Button3Click(Sender: TObject);beginExcelApp.ActiveWorkBook.Sheets['Sheet2'].Selectend;procedure TForm1.Button4Click(Sender: TObject);beginexcelapp.activeworkbook.sheets[edit1.Text].select;excelapp.activeworkbook.sheets[edit1.Text].range[edit2.Text].select;edit3.Text :=excelapp.ActiveCell.value;//取公式excelapp.ActiveCell.FormulaR1C1//取值excelapp.ActiveCell.valueend;procedure TForm1.Button5Click(Sender: TObject);beginmemo1.Clear;excelapp.activeworkbook.sheets[edit4.Text].select;excelapp.activeworkbook.sheets[edit4.Text].range[edit5.Text].select;memo1.Lines.Add(…字体:‟+);ifnot VarIsNull(excelapp.Selection.Font.size) thenmemo1.Lines.Add(…字号:‟+inttostr(excelapp.Selection.Font.size));memo1.Lines.Add(…字形:‟+excelapp.Selection.Font.FontStyle);ifnot VarIsNull(excelapp.Selection.Font.Underline) thenmemo1.Lines.Add(…下划线:‟+inttostr(excelapp.Selection.Font.Underline));ifnot VarIsNull(excelapp.Selection.Font.ColorIndex) thenmemo1.Lines.Add(…字体颜色:‟+inttostr(excelapp.Selection.Font.ColorIndex)); ifnot VarIsNull(excelapp.Selection.Interior.ColorIndex) thenmemo1.Lines.Add(…填充颜色:‟+inttostr(excelapp.Selection.Interior.ColorIndex));ifnot VarIsNull(excelapp.Selection.HorizontalAlignment) thenmemo1.Lines.Add(…文本水平对齐方式:‟+inttostr(excelapp.Selection.HorizontalAlignment));ifnot VarIsNull(excelapp.Selection.VerticalAlignment) thenmemo1.Lines.Add(…文本垂直对齐方式:‟+inttostr(excelapp.Selection.VerticalAlignment));ifnot VarIsNull(excelapp.Selection.MergeCells) thenm emo1.Lines.Add(…合并单元格:‟+inttostr(excelapp.Selection.MergeCells));ifnot VarIsNull(excelapp.Selection.WrapText) thenmemo1.Lines.Add(…自动换行:‟+inttostr(excelapp.Selection.WrapText));// 1: Left, 2: Right, 3: Top, 4: bottom// 5: \, 6: / (斜线)// 7: Left, 8: Top, 9: bottom, 10: Right (不包括内部单元格)// 11, 12 , 内部单元格线条(分别是竖线和横线,12我用了没效果)ifnot VarIsNull(excelapp.Selection.Borders[1].LineStyle) thenmemo1.Lines.Add(…区域活动单元格左边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[1].LineStyle)+‟:'+inttostr(exce lapp.Selection.Borders[ 1].Weight)+‟:'+inttostr(excelapp.Selection.Borders[1].ColorIndex));ifnot VarIsNull(excelapp.Selection.Borders[2].LineStyle) thenmemo1.Lines.Add(…区域活动单元格右边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[2].LineStyle)+‟:'+inttost r(excelapp.Selection.Borders[ 2].Weight)+‟:'+inttostr(excelapp.Selection.Borders[2].ColorIndex));ifnot VarIsNull(excelapp.Selection.Borders[3].LineStyle) thenmemo1.Lines.Add(…区域活动单元格上边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[3].LineStyle)+‟:'+i nttostr(excelapp.Selection.Borders[ 3].Weight)+‟:'+inttostr(excelapp.Selection.Borders[3].ColorIndex));ifnot VarIsNull(excelapp.Selection.Borders[4].LineStyle) thenmemo1.Lines.Add(…区域活动单元格下边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[4].LineStyle)+‟:'+inttostr(excelapp.Selection.Borders[ 4].Weight)+‟:'+inttostr(excelapp.Selection.Borders[4].ColorIndex));ifnot VarIsNull(excelapp.Selection.Borders[5].LineStyle) thenmemo1.Lines.Add(…区域左右斜边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[5].LineStyle)+‟:'+inttostr(excelapp.Selection.Borders[ 5].Weight)+‟:'+inttostr(excelapp.Selection.Borders[5].ColorIndex));ifnot VarIsNull(excelapp.Selection.Borders[6].LineStyle) thenmemo1.Lines.Add(…区域右左斜边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[6].LineStyle)+‟:'+inttostr(excelapp.Selection.Borders[ 6].Weight)+‟:'+inttostr(excelapp.Selection.Borders[6].ColorIndex));ifnot VarIsNull(excelapp.Selection.Borders[7].LineStyle) thenmemo1.Lines.Add(…区域左边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[7].LineStyle)+‟:'+inttostr(excelapp.Selection.Borders[ 7].Weight)+‟:'+inttostr(excelapp.Selection.Borders[7].ColorIndex));ifnot VarIsNull(excelapp.Selection.Borders[8].LineStyle) thenmemo1.Lines.Add(…区域上边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[8].LineStyle)+‟:'+inttostr(excelapp.Selection.Borders[ 8].Weight)+‟:'+inttostr(excelapp.Selection.Borders[8].ColorIndex));ifnot VarIsNull(excelapp.Selection.Borders[9].LineStyle) thenmemo1.Lines.Add(…区域下边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[9].LineStyle)+‟:'+inttostr(excelapp.Selection.Borders[ 9].Weight)+‟:'+inttostr(excelapp.Selection.Borders[9].ColorIndex));ifnot VarIsNull(excelapp.Selection.Borders[10].LineStyle) thenmemo1.Lines.Add(…区域右边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[10].LineStyle)+‟:'+inttostr(excelapp.Selection.Borders [10].Weight)+‟:'+inttostr(excelapp.Selection.Borders[10].ColorIndex));ifnot VarIsNull(excelapp.Selection.Borders[11].LineStyle) thenmemo1.Lines.Add(…区域内部垂直边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[11].LineStyle)+‟:'+inttostr(excelapp.Selection.Borders [11].Weight)+‟:'+inttostr(excelapp.Selection.Borders[11].ColorIndex));ifnot VarIsNull(excelapp.Selection.Borders[12].LineStyle) thenmemo1.Lines.Add(…区域内部水平边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[12].LineStyle)+‟:'+inttostr(excelapp.Selection.Borders [12].Weight)+‟:'+inttostr(excelapp.Selection.Borders[12].ColorIndex));memo1.Lines.Add(…数字类型:‟+excelapp.Selection.NumberFormatLocal);memo1.Lines.Add(…行高:‟+inttostr(excelapp.Selection.Ro wHeight));memo1.Lines.Add(…列宽:‟+inttostr(excelapp.Selection.ColumnWidth));memo1.Lines.Add(…工作表名称:‟+excelapp.activeworkbook.sheets[edit4.Text].name);end;procedure TForm1.Button6Click(Sender: TObject);beginmemo2.Clear;excelapp.activeworkbook.sheets[edit6.Text].select;memo2.Lines.Add(…图表标题:‟+excelapp.sheets[edit6.Text].ChartObjects[1].chart.ChartTitle.Characters.Text);end;procedure TForm1.Button7Click(Sender: TObject);beginExcelApp.ActiveWorkbook.Sheets['Sheet3'].Select;ExcelApp.Acti veWorkbook.PivotCaches.Add(1,‟Sheet1!R1C2:R5C4′).CreatePivotTable(…[1.xls]S heet3!R2C1′,‟数据透视表1′);ExcelApp.ActiveWorkbook.ShowPivotTableFieldList :=True;ExcelApp.ActiveSheet.PivotTables(…数据透视表1′).PivotFields(…姓名‟).Orientation:=1; ExcelApp.Active Sheet.PivotTables(…数据透视表1′).PivotFields(…姓名‟).Position:=1; ExcelApp.ActiveSheet.PivotTables(…数据透视表1′).PivotFields(…语文‟).Orientation:=2; ExcelApp.ActiveSheet.PivotTables(…数据透视表1′).PivotFields(…语文‟).Position:=1; ExcelApp.ActiveSheet.PivotTables(…数据透视表1′).PivotFields(…数学‟).Orientation:=2; ExcelApp.ActiveSheet.PivotTables(…数据透视表1′).PivotFields(…数学‟).Position:=1;ExcelApp.ActiveSheet.PivotTables(…数据透视表1′).DisplayImmediateItems:=True;ExcelApp.ActiveSheet.PivotTables(…数据透视表1′).AddDataField(ExcelApp.ActiveSheet.PivotTables(…数据透视表1′).PivotFields(…语文‟),…求和项:语文‟,-4157);//说明,对于宏录制的代码中的,xlRowField ,xlColumnField ,xlSum没有相应的说明,//可以EXCEL的宏中调试时,跟踪出相关的值如xlSum=-4157,其它的根据要求,自己跟踪//以下是录制的宏命令,以供参考{Sub Macro1()……Macro1 Macro宏由MS User 录制,时间: 2006-5-19…ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=_“Sheet1!R1C2:R5C4″).CreatePivotTable TableDestination:=”", TableName:= _“数据透视表1″,DefaultVersion:=xlPivotTableVersion10ActiveSheet.PivotTableWizardTableDestination:=ActiveSheet.Cells(3, 1)ActiveSheet.Cells(3, 1).SelectWithActiveSheet.PivotTables(“数据透视表1″).PivotFields(“姓名”).Orientation =xlRowField.Position = 1End WithWithActiveSheet.Piv otTables(“数据透视表1″).PivotFields(“语文”).Orientation =xlColumnField.Position = 1End WithWithActiveSheet.PivotTables(“数据透视表1″).PivotFields(“数学”).Orientation =xlColumnField.Position = 1End WithRa nge(“D8″).SelectActiveSheet.PivotTables(“数据透视表1″).AddDataField ActiveSheet.PivotTables(“数据透视表1″ _).PivotFields(“语文”), “求和项:语文”,xlSumRange(“C13″).SelectEndSub}end;。
delphi excel 例程-回复[Delphi Excel 例程] 创建、操作和导入、导出Excel 文件的示例简介:Delphi 是一种面向对象的编程语言,常被用于开发Windows 平台下的应用程序。
对于许多开发人员来说,数据的导入、导出和处理是非常常见的任务。
在本例程中,我们将学习如何使用Delphi 操作和导入、导出Excel 文件。
下面是一个详细的步骤指南。
第一步:创建一个新的Delphi 项目首先,打开Delphi IDE,然后创建一个新的VCL 应用程序项目。
我们将使用Visual Component Library(VCL)来构建我们的应用程序。
第二步:添加Excel 文件库在Delphi IDE 的主菜单栏中,点击"Component",然后选择"Import Component"。
在对话框中,找到"Microsoft Excel" 组件并选中它,然后点击"OK"。
第三步:设计用户界面在Delphi 的窗体设计器中,设计一个用户界面,以便用户可以选择导入或导出Excel 文件,并进行必要的操作。
第四步:导入Excel 文件在用户界面中,添加一个"导入Excel 文件" 的按钮,并在单击事件中编写以下代码。
pascalusesExcelApp, ExcelWB;procedure TForm1.Button1Click(Sender: TObject);varExcel: _Application; Excel 应用程序对象Workbook: _Workbook; 工作簿对象Worksheet: _Worksheet; 工作表对象begintryExcel := CoExcelApplication.Create; 创建Excel 应用程序对象Workbook :=Excel.Workbooks.Open('C:\path\to\your\excel.xlsx'); 打开Excel 文件Worksheet := Workbook.Worksheets[1]; 获取第一个工作表在这里,你可以通过Worksheet 对象获取和处理Excel 文件的数Workbook.Close(True); 关闭并保存Excel 文件Excel.Quit; 关闭Excel 应用程序finallyWorksheet := nil;Workbook := nil;Excel := nil;end;end;在此代码示例中,我们使用`CoExcelApplication` 类的`Create` 方法创建了一个Excel 应用程序的实例。
delphi excelwriter引用单元
在Delphi中使用ExcelWriter进行Excel文档操作,首先需要在项目中引用ExcelWriter引用单元。
以下是具体的引用步骤:
1.打开Delphi的代码编辑器,找到项目选项卡中的"引用"选项。
2.在"引用"对话框中,找到"Delphi单元"列表,然后展开它。
3.在展开的列表中,找到"ExcelWriter"单元,然后选中它。
4.点击"确定"按钮,关闭"引用"对话框。
完成以上步骤后,ExcelWriter引用单元就已经被成功添加到项目中,可以在代码中使用其提供的Excel文档操作功能。
例如,可以通过声明一个Excel应用程序变量并为其分配一个实例来创建一个Excel文档对象,然后使用ExcelWriter提供的API来操作Excel文档。
【Delphi】汇出Excel时,Excel单元格格式设置(附Delphi操作Excel方法)一个例子:excelworksheet1.Cells.Item[row,3]. numberformatlocal:='$#,##0.00;[红色]-$#,##0.00';excelworksheet1.Cells.Item[row,3].Formula:='=SUM(R[-'+inttostr(row-rowflag+1)+']C:R[-1]C)';excelworksheet1.Cells.Item[row,3].Borders[3].LineStyle :=xlContinuous; excelworksheet1.Cells.Item[row,3].Borders[4].LineStyle :=xlDouble; excelworksheet1.Cells.Item[row,4].Borders[3].LineStyle :=xlContinuous; excelworksheet1.Cells.Item[row,4].Borders[4].LineStyle :=xlDouble; excelworksheet1.Cells.Item[row,4].Formula:='=R[-1]C';注:不知道公式及格式,均可通过录制宏找出对应公式及格式。
效果如下图:资料来自网络单元格设置1.设置单元格线框Excel.ActiveSheet.Range[B10:C13].Borders[N].LineStyle := xlNoneExcel.ActiveSheet.Range[B10:C13].Borders[N].Weight := xlThin边框的类型 Borders[N]xlEdgeLeft 左=1xlEdgeRight 右=2xlEdgeTop 顶=3xlEdgeBottom 底=4xlDiagonalUp 左上右下=5xlDiagonalDown 左下右上=6xlEdgeLeft 外部左边框=7xlEdgeTop 外部上边框=8xlEdgeBottom 外部下边框=9xlEdgeRight 外部右边框=10xlInsideVertical 内部竖线=11xlInsideHorizontal 内部横线=12(其中1:为左 2:右 3:顶 4:底 5:斜\ 6:斜/)线条类型LineStyle,宽度Weight单条线的LineStyle := xlContinuous双条线的LineStyle := xlDouble虚线 xlHairline 1实线 xlThin中实线 xlMedium粗实线 xlThick2.给单元格赋值:Excel.Cells[1,4].Value := 第一行第四列;3.设置第一行字体属性(隶书,蓝色,加粗,下划线):Excel.ActiveSheet.Rows[1] := 隶书; Excel.ActiveSheet.Rows[1].Font.Color := clBlue; Excel.ActiveSheet.Rows[1].Font.Bold := True; Excel.ActiveSheet.Rows[1].Font.UnderLine := True;4.设置整个表字体为9Excel.Cells.Font.Size:=9;5.在第8行之前插入/删除分页符:Excel.WorkSheets[1].Rows[8].PageBreak := 1; (0为删除)6.清除第一行第四列单元格公式:Excel.ActiveSheet.Cells[1,4].ClearContents;7.从数字类型转换成文本类型(不知道格式化字符串,请录制宏,抽出宏中格式化字符串。
(一) 使用动态创建的方法首先创建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].ColumnWidth := 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] := '隶书';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.拷贝整个工作表:ed.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 thenExcelApp.ActiveSheet.PrintPreview;21) 工作表另存为:ExcelApp.SaveAs( 'C:\Excel\Demo1.xls ' );22) 放弃存盘:ExcelApp.ActiveWorkBook.Saved := True;23) 关闭工作簿:ExcelApp.WorkBooks.Close;24) 退出Excel:ExcelApp.Quit;unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphic s, Controls, Forms,Dialogs, StdCtrls,comobj, ExtCtrls;typeTForm1 = class(TForm)Button1: TButton;Button2: TButton;Button3: TButton;Button4: TButton;Button5: TButton;CheckBox1: TCheckBox;OpenDialog1: TOpenDialog;SaveDialog1: TSaveDialog;procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject);procedure Button4Click(Sender: TObject);procedure Button5Click(Sender: TObject);procedure Button3Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;v: Variant;Sheet: Variant;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);begintryv:=CreateOleObject( 'Excel.Application ');v.Visible:=CheckBox1.Checked;if MessageDlg( '新建还是打开:是否新建Excel 文件?',mtConfirmation,[mbYes,mbNo],0)=mrYes thenbeginv.WorkBooks.Add; //新建Excel 文件v.WorkBooks[1].WorkSheets[1].name:= '电脑报 ';//第一页标题v.WorkBooks[1].WorkSheets[2].name:= '编程乐园 '; v.WorkBooks[1].WorkSheets[3].name:= '都来看呀 '; Sheet:=v.WorkBooks[1].WorkSheets[1];Sheet.Cells[1,1]:= '好看 ';//单元格内容Sheet.Cells[1,2]:= '确实 ';Sheet.Cells[2,1]:= '我喜欢 ';endelseif OpenDialog1.Execute thenv.WorkBooks.Open(Opendialog1.FileName)elseexit;exceptshowmessage( '初始化Excel失败,可能没装Excel,或者其他错误;请重新再试。
');v.DisplayAlerts:=false;//是否提示存盘v.Quit;//退出Excelexit;end;Application.Restore;Application.BringToFront;end;//~~~~~~~~~~~~~~~~~~~~~~~~~Excel 文档格式设置~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~procedure TForm1.Button2Click(Sender: TObject);varRange:Variant;beginif OpenDialog1.Execute thenbegintryv:=CreateOleObject( 'Excel.Application ');v.visible:=CheckBox1.Checked;v.Workbooks.Open(OpenDialog1.FileName);Range:=v.WorkBooks[1].WorkSheets[1].Range[ 'A2:G2 '];//the space of unit From A2 to G2Range.Merge;//combine the unit spacesRange.Rows.RowHeight:=50;//locate the height of the row of the unit spaceRange.Borders.LineStyle:=1;//add the border cas ementRange.Columns[2].ColumnWidth:=12;//locate the wid th of the columnsRange.FormulaR1C1:= '合并区 ';Range.HorizontalAlignment:=3;//xlCenter(the Horizon tall alignment patternRange.VerticalAlignment:=2;//xlCenter(the Vertical alignment pattern:= '宋体 ';Range.Characters.Font.FontStyle:= '加粗 ';Range.Characters.Font.Size:=15;Range.Characters.Font.OutlineFont:=False;Range.Characters.Font.ColorIndex:=0;exceptshowmessage( '初始化Excel失败,可能没装Excel,或者其他错误;请重新再试。