delphi控制excel大全(完全版)
- 格式:pdf
- 大小:86.86 KB
- 文档页数:6
1.往Excel中插入图片用MsExcelWorkSheet.Pictures.Insert(ExtractFilePath(ParamStr(0))+'temp.jpg'); 可以放图片varExcelApp,MyWorkBook,MsExcelWorkSheet,Temple1:Variant;begintryExcelApp:=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 thenbeginTblobfield(ADOQueryItemBook.FieldByName('pic')).SaveToFile(ExtractFilePath(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] := '隶书';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 对象,使用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是开发数据库应用系统的常用工具,那么,如何在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处理WordExcelDelphi处理Word/Excel⼀、VBA代码含义Microsoft Word是⼀个集成化环境,是美国微软公司的字处理系统,但是它决不仅仅是⼀个字处理系统,它集成了Microsoft Visual Basic,可以通过编程来实现对Word功能的扩展。
Microsoft Visual Basic在word中的代码即Word的宏,通过编写Word宏,可实现⼀些⽂档处理的⾃动化,如实现⽂档的⾃动备份、存盘等,可扩展Word⽂档的功能,因此,能够充分利⽤Word的特性,甚⾄使Word成为⾃⼰软件的⼀部分。
Word的宏既有有利的⼀部分,因为它能够帮助我们实现⽂档的⾃动化,但是Word的宏也不是纯粹的有利,有时它可能危害我们的⽂档、计算机系统甚⾄⽹络,从最开始的Taiwan NO1宏病毒到现在的Melissa宏病毒,从最开始的简单的提⽰,耗尽系统资源到现在的乱发电⼦邮件,将个⼈的信息发送到⽹络上,甚⾄向硬盘的Autoexec.bat(⾃动批处理⽂件)中添加Deltree C: -y,破坏整个Windows系统。
⼆、Word中内嵌的Com技术可以说Word是对Com技术⽀持最好的软件,这样说似乎是太极端了⼀点,但是Word提供的强⼤的编程接⼝技术却能够是我们通过程序控制Word的任何⼀部分。
⽆论是⽂件的打开、存盘、打印还是⽂档中表格的⾃动绘制。
通过编程软件,可以灵活的操纵word,这⾥只以Borland Delphi为例,进⾏详细描述:1、在Delphi中调⽤Word软件/⽂件的⽅法在Word中调⽤Word软件,归纳起来有三种⽅法:。
通过Delphi的控件TOleContainer 将Word嵌⼊a.使⽤Delphi提供的Servers控件调⽤Word,使⽤Word的属性b.通过真正的Com技术,将Office软件⽬录中⽂件MSWORD9.OLB中的类库全部导⼊Delphi中,利⽤Com技术编程c.使⽤CreateOleObject将启动Word,然后以Ole⽅式对Word进⾏控制。
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应用程序对象,并在其中创建一个新的工作簿。
在delphi中调用excel有四种方式,我们选取其中的一种用oleobject来装载excel工作表的方式来谈delphi控制excel的重要属性和方法。
首先给出通过ole创建的一些主要代码步进行简单说明:创建ole对象:var olecon: tolecontainer;olecon:= tolecontainer.create(self);olecon.oleobject:= olecon.createobject('excel.sheet',false);或选择导入一个excel文件来创建ole对象:olecon.oleobject:= olecon.createobjectfromfile(xlsname,false);最好隐藏excel的几个工具条,这样就好象是嵌在你的程序中的一个表而已了:mandbars['standard'].visible:=false;mandbars['formatting'].visible:=false ;mandbars['reviewing'].visible:=false;然后显示并激活excel表,对tolecontainer定义的对象:olecon.show;olecon.doverb(0);这样基本可以了,但tolecontainer有个不好的地方,就是当你一点击其它控件是就它就失去焦点,然后就自动退出,其实并没有真的退出,只是需要你再次激活它而已,关键是当它失去焦点的时候就excel对象就不见了,可以用timage控件把tolecontainer所在的地方有excel时候的区域图片截下来骗骗用户,我们这里主要不是讲这个,就不详述了。
下面我们就开始讲excel_tlb中的接口的常用属性和方法,主要是针对导出和设定报表格式的一些接口元素。
单元格的读写属性:olecon.oleobject.application.cells.item[1,1];olecon.oleobject.application.cells(1,1);olecon.oleobject.application.cells[1,1].value;上面三种都可以对工作表的‘a1’单元进行读写。
Delphi 自动化控制Excel (A)如何控制Excel 程序来输出数据,插入公式并根据数据画出图表来呢?Delphi 5 提供了一组封装了Office 97和Office 2000的控件,这组控件位于控件面板的Servers 页面上,它可以极大地简化对Office 的调用。
不过糟糕的是,Borland 并没有为这些控件提供使用帮助,但实际上使用这些控件是非常简单的,并且Office 的对象体系也在Office 的帮助中有着详细的说明。
下面我们将编写一个程序来演示如何控制Excel 来创建月份销售情况的报表和图表的。
程序运行结果如图1.29所示。
连接Excel同Excel 建立连接可以使用Connect 方法。
控件由于某些原因可能同Excel 无法建立连接,因此应该为连接代码建立一个异常处理,代码示意如下:tryExcelApplication1.Connect;excepton E: Exception dobeginE.Message := '无法连接Excel';Raise;end;end;ExcelApplication1.Visible[0] := True;图1.29建立连接的方式依赖于Server组件的两个重要属性:第一个是AutoConnect 属性,如果为True,表明程序启动后无须调用connect方法就能自动连接Excel;另一个属性是ConnectKind ,它决定了如何建立连接:ckRunningOrNew 表明首先尝试连接到一个当前的服务器上,如果服务器还没运行,则创建服务器的一个实例,然后连接。
ckNewInstance 总是创建一个新的服务器实例,当我们希望不同用户之间保持相互独立的时候比较有用。
ckRunningInstance 只同当前运行的服务器相连接。
ckRemote 同一个由RemoteMachineName指定的远程机器上运行的服务器相连接。
一、使用单元: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:=’坐标轴说明’;。
下面是我写的通用文档微机管理系统的打印部分原代码,包括合并execl单元格,加入分页符号,设置行高,列宽,设置execl页头,设置每页记录数,画单元格边框,调用execl模板等等procedure TfrmMain.Button3Click(Sender:TObject);//动态打印excel报表vartiaojian:string;//tiaojian为一个sql查询语句,全宗号,目录号,起始日期为一数据库字段begintiaojian:=';if Edit7.Text<>'thenbegintiaojian:=tiaojian+'(全宗号='+EDit7.Text+')and';end;if Edit8.Text<>'thenbegintiaojian:=tiaojian+'(目录号='+Edit8.Text+')and';end;if Edit9.Text<>'thenbegintiaojian:=tiaojian+'(起始日期>='+Edit9.Text+')and';endelse tiaojian:=tiaojian+'(起始日期>=0)and';if Edit10.Text<>'thenbegintiaojian:=tiaojian+'(起始日期<='+Edit10.Text+')and';end;tiaojian:=copy(tiaojian,1,length(tiaojian)-3);//tiaojian为一个sql查询语句Printanjuan(tiaojian);//调用打印过程ShellExecute(Handle,'Open',PChar(GetCurpath+'temp.xls'),nil,nil,sw_shownormal);//调用excel查看生成的文件ProgressBar1.Position:=0;//ProgressBar1为一个进程条控件end;procedure TfrmMain.Printanjuan(tiaojiao:string);varnowhangi,i,jilushu,LCID:integer;//nowhangi当前execl的所在行,jilushu当前的记录位置ssql,PathName:string;oldcur:tcursor;ExcelApplication1:TExcelApplication;ExcelWorkbook1:TExcelWorkbook;ExcelWorkSheet1:TExcelWorksheet;xl,Cell1:olevariant;beginLCID:=LOCALE_USER_DEFAULT;if FileExists(GetCurpath+'temp.xls')then//删除动态生成的临时temp.xls文件tryDeleteFile(GetCurpath+'temp.xls');exceptend;ssql:=';//执行sql查询ssql:='select*from mainanjuan where('+tiaojiao+')order by系统编号'; doadosql(dm1.queryanjuan,ssql);begintryExcelApplication1:=TExcelApplication.Create(Self);ExcelWorkbook1:=TExcelWorkbook.Create(Self);ExcelWorkSheet1:=TExcelWorksheet.Create(Self);exceptshowmessage('对不起,您没有安装Excel2000!');abort;end;end;ExcelApplication1.Connect;ExcelApplication1.Workbooks.Add(null,0);//如果调用一个模板,改动该句如://ExcelApplication1.Workbooks.Add('c:\zichang.xls',0);ExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks[1]); ExcelWorkSheet1.ConnectTo(ExcelWorkBook1.Sheets[1]as_WorkSheet); //写入execlProgressBar1.Position:=5;if dm1.queryanjuan.RecordCount>0thenbegin//设置列宽,行高nowhangi:=1;ExcelApplication1.Range['A1','A1'].ColumnWidth:=3.5;ExcelApplication1.Range['B1','B1'].ColumnWidth:=3.5;ExcelApplication1.Range['C1','C1'].ColumnWidth:=3.5;ExcelApplication1.Range['D1','D1'].ColumnWidth:=8;ExcelApplication1.Range['E1','E1'].ColumnWidth:=20;ExcelApplication1.Range['F1','F1'].ColumnWidth:=8.75;ExcelApplication1.Range['G1','G1'].ColumnWidth:=8.75;ExcelApplication1.Range['H1','H1'].ColumnWidth:=3.0;ExcelApplication1.Range['I1','I1'].ColumnWidth:=3.0;ExcelApplication1.Range['J1','J1'].ColumnWidth:=3.0;//设置每页的记录数目for jilushu:=1to(dm1.queryanjuan.RecordCount)dobegin//ProgressBar1为一个进程条控件ProgressBar1.Position:=(jilushu*100)div(dm1.queryanjuan.RecordCount);tryif jilushu mod strtoint(edit14.Text)=1then//edit14.Text的值为一个数字,表示每页的记录数目begin//打印每页的页头ExcelApplication1.Range['A'+inttostr(nowhangi),'J'+inttostr(nowhangi)].Merge(xl);//合并execl单元格ExcelWorkSheet1.cells.Item[nowhangi,1]:=fontselectbox.FontName;ExcelWorkSheet1.cells.Item[nowhangi,1].font.size:=24;ExcelWorkSheet1.cells.Item[nowhangi,1].RowHeight:=32;ExcelWorkSheet1.cells.Item[nowhangi,1]:='案卷目录';ExcelWorkSheet1.cells.Item[nowhangi,1].HorizontalAlignment:=xlCenter;ExcelWorkSheet1.cells.Item[nowhangi+1,1]:=fontselectbox.FontName;ExcelWorkSheet1.cells.Item[nowhangi+1,1].font.size:=12;ExcelWorkSheet1.cells.Item[nowhangi+1,1].Font.Bold:=True;ExcelWorkSheet1.cells.Item[nowhangi+1,1].Orientation:=xlVertical;ExcelWorkSheet1.cells.Item[nowhangi+1,1].VerticalAlignment:=xlTop;ExcelWorkSheet1.cells.Item[nowhangi+1,1]:='顺序号';ExcelWorkSheet1.cells.Item[nowhangi+1,2]:=fontselectbox.FontName;ExcelWorkSheet1.cells.Item[nowhangi+1,2].font.size:=12;ExcelWorkSheet1.cells.Item[nowhangi+1,2].Font.Bold:=True;ExcelWorkSheet1.cells.Item[nowhangi+1,2].Orientation:=xlVertical;ExcelWorkSheet1.cells.Item[nowhangi+1,2].VerticalAlignment:=xlTop;ExcelWorkSheet1.cells.Item[nowhangi+1,2]:='全宗号';ExcelWorkSheet1.cells.Item[nowhangi+1,3]:=fontselectbox.FontName;ExcelWorkSheet1.cells.Item[nowhangi+1,3].font.size:=12;ExcelWorkSheet1.cells.Item[nowhangi+1,3].Font.Bold:=True;ExcelWorkSheet1.cells.Item[nowhangi+1,3].Orientation:=xlVertical;ExcelWorkSheet1.cells.Item[nowhangi+1,3].VerticalAlignment:=xlTop;ExcelWorkSheet1.cells.Item[nowhangi+1,3]:='目录号';//加入分页符号if(jilushu div strtoint(edit14.Text)>0)thenbeginCell1:=ExcelWorksheet1.Cells.Item[nowhangi,11];ExcelWorksheet1.VPageBreaks.Add(Cell1);ExcelWorksheet1.HPageBreaks.Add(Cell1);end;nowhangi:=nowhangi+2;end;//打印查询数据ExcelWorkSheet1.cells.Item[nowhangi,1].RowHeight:=60;ExcelWorkSheet1.cells.Item[nowhangi,1]:=fontselectbox.FontName;ExcelWorkSheet1.cells.Item[nowhangi,1].font.size:=strtoint(Edit11.text);ExcelWorkSheet1.cells.Item[nowhangi,1].WrapText:=True;ExcelWorkSheet1.cells.Item[nowhangi,1]:=inttostr(jilushu);ExcelWorkSheet1.cells.Item[nowhangi,2]:=fontselectbox.FontName;ExcelWorkSheet1.cells.Item[nowhangi,2].WrapText:=True;ExcelWorkSheet1.cells.Item[nowhangi,2].font.size:=strtoint(Edit11.text);ExcelWorkSheet1.cells.Item[nowhangi,2]:=dm1.queryanjuan.fieldbyname('全宗号').asstring;ExcelWorkSheet1.cells.Item[nowhangi,3]:=fontselectbox.FontName;ExcelWorkSheet1.cells.Item[nowhangi,3].WrapText:=True;ExcelWorkSheet1.cells.Item[nowhangi,3].font.size:=strtoint(Edit11.text);ExcelWorkSheet1.cells.Item[nowhangi,3]:=dm1.queryanjuan.fieldbyname('目录号').asstring;exceptend;dm1.queryanjuan.Next;nowhangi:=nowhangi+1;end;end;try//插入页码ExcelWorkSheet1.PageSetup.RightHeader:='&9第&P页共&N页';exceptshowmessage('您可能没有安装打印机');end;for i:=1to nowhangi-1do//画单元格边框if taoda.Checked thenbeginwith ExcelApplication1.Range['A'+inttostr(i),'J'+inttostr(i)].Borders dobeginLineStyle:=xlContinuous;Weight:=xlThin;ColorIndex:=xlAutomatic;end;end;ExcelWorkBook1.SaveCopyAs(GetCurpath+'temp.xls');ExcelApplication1.DisplayAlerts[LCID]:=False;ExcelApplication1.Quit;ExcelWorksheet1.Disconnect;ExcelWorkbook1.Disconnect;ExcelApplication1.Disconnect;end;procedure TfrmMain.DoAdoSql(CurADODS:TADODataSet;SSql:string); varoldcur:tcursor;beginsb1.Panels[0].Text:='正在查询数据……';//sb1:Tstatusbar控件sb1.Refresh;oldcur:=Screen.Cursor;screen.cursor:=crHourGlass;tryif CurADODS.Active=true then CurADODS.Close;mandText:=SSql;CurADODS.Open;finallyscreen.Cursor:=oldcur;end;end;。