delphi控制excel大全(完全版)

合集下载

Delphi操作Excel大全

Delphi操作Excel大全

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数据(各种详细操作)

怎么在delphi中读取Excel数据(各种详细操作)

怎么在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

如何在Delphi中操作Excel

如何在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处理WordExcel

Delphi处理WordExcel

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 例程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

Delphi操作Excel

4)
添加新工作簿:
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));
5)
添加新工作表:
var Temp_Worksheet: _WorkSheet;
22)
放弃存盘:
ExcelApp.ActiveWorkBook.Saved := True;
23)
关闭工作簿:
ExcelApp.WorkBooks.Close;
24)
退出
Excel

ExcelApp.Quit;
h.
右边距
2cm

ExcelApp.ActiveSheet.PageSetup.RightMargin := 2/0.035;
i.
页面水平居中:
ExcelApp.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;
ExcelApp.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;
1-

2-

3-

4-

5-

( \ ) 6-

( / )
12)
清除第一行第四列单元格公式:
15)
拷贝操作:
a.
拷贝整个工作表:
ed.Range.Copy;
b.
拷贝指定区域:
ExcelApp.ActiveSheet.Range[ 'A1:E2' ].Copy;

Delphi中控制Excel

Delphi中控制Excel
10.页面垂直居中:
Excel.ActiveSheet.PageSetup.CenterVertically := 2/0.035;
11.打印单元格网线:
Excel.ActiveSheet.PageSetup.PrintGridLines := True;
12.横向打印
Excel.ActiveSheet.PageSetup.Orientation:=2
第9种=6,3
第12种=1,3
第13种=1,4
第2种=2,1
单条线的LineStyle := xlContinuous
双条线的LineStyle := xlDouble
虚线 xlHairline 1
实线 xlThin
中实线 xlMedium
粗实线 xlThick
XLLineStyle等值参考Excel里面的VisualBasic对象浏览器帮助 (如图)
Excel.ActiveSheet.Columns[A:A].EntireColumn.AutoFit; //第一列
6.居中显示J列
Excel.Columns[J:J].HorizontalAlignment:=3;
7.设置E列单元格式为3位小数数值
Excel.Columns[E:E].NumberFormatLocal:=#,##0.000_
8.设置E列单元格式为文字
Excel.Columns[E:E].NumberFormatLocal:=@
四、单元格设置
1.设置单元格线框
Excel.ActiveSheet.Range[B10:C13].Borders[N].LineStyle := xlNone

Delphi控制Excel的重要属性和方法

Delphi控制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’单元进行读写。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

下面是我写的通用文档微机管理系统的打印部分原代码,包括合并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;。

相关文档
最新文档