Delphi对Excel的所有操作.doc_第1页
Delphi对Excel的所有操作.doc_第2页
Delphi对Excel的所有操作.doc_第3页
Delphi对Excel的所有操作.doc_第4页
Delphi对Excel的所有操作.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Delphi对Excel的所有操作学完这个你就成为excel高手了!(Delphi对Excel的所有操作)逐个试试!一)使用动态创建的方法首先创建Excel对象,使用ComObj:varExcelApp:Variant;ExcelApp:=CreateOleObject(Excel.Application);1)显示当前窗口:ExcelApp.Visible:=True;2)更改Excel标题栏:ExcelApp.Caption:=应用程序调用MicrosoftExcel;3)添加新工作簿:ExcelApp.WorkBooks.Add;4)打开已存在的工作簿:ExcelApp.WorkBooks.Open(C:ExcelDemo.xls);5)设置第2个工作表为活动工作表:ExcelApp.WorkSheets2.Activate;或ExcelApp.WorksSheetsSheet2.Activate;6)给单元格赋值:ExcelApp.Cells1,4.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;11)指定边框线宽度:ExcelApp.ActiveSheet.RangeB3:D4.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.ActiveSheet.Rows1.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.拷贝整个工作表:ExcelApp.ActiveSheet.Used.Range.Copy;b.拷贝指定区域:ExcelApp.ActiveSheet.RangeA1:E2.Copy;c.从A1位置开始粘贴:ExcelApp.ActiveSheet.Range.A1.PasteSpecial;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)打印输出工作表:ExcelApp.ActiveSheet.PrintOut;20)工作表保存:ifnotExcelApp.ActiveWorkBook.SavedthenExcelApp.ActiveSheet.PrintPreview;21)工作表另存为:ExcelApp.SaveAs(C:ExcelDemo1.xls);22)放弃存盘:ExcelApp.ActiveWorkBook.Saved:=True;23)关闭工作簿:ExcelApp.WorkBooks.Close;24)退出Excel:ExcelApp.Quit;(二)使用Delphi控件方法在Form中分别放入ExcelApplication,ExcelWorkbook和ExcelWorksheet。1)打开ExcelExcelApplication1.Connect;2)显示当前窗口:ExcelApplication1.Visible0:=True;3)更改Excel标题栏:ExcelApplication1.Caption:=应用程序调用MicrosoftExcel;4)添加新工作簿:ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0);5)添加新工作表:varTemp_Worksheet:_WorkSheet;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,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)7)设置第2个工作表为活动工作表:ExcelApplication1.WorkSheets2.Activate;或ExcelApplication1.WorksSheetsSheet2.Activate;8)给单元格赋值:ExcelApplication1.Cells1,4.Value:=第一行第四列;9)设置指定列的宽度(单位:字符个数),以第一列为例:ExcelApplication1.ActiveSheet.Columns1.ColumnsWidth:=5;10)设置指定行的高度(单位:磅)(1磅0.035厘米),以第二行为例:ExcelApplication1.ActiveSheet.Rows2.RowHeight:=1/0.035;/1厘米11)在第8行之前插入分页符:ExcelApplication1.WorkSheets1.Rows.PageBreak:=1;12)在第8列之前删除分页符:ExcelApplication1.ActiveSheet.Columns4.PageBreak:=0;13)指定边框线宽度:ExcelApplication1.ActiveSheet.RangeB3:D4.Borders2.Weight:=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;ExcelApplication1.ActiveSheet.Rows1.Font.UnderLine:=True;16)进行页面设置:a.页眉:ExcelApplication1.ActiveSheet.PageSetup.CenterHeader:=报表演示;b.页脚:ExcelApplication1.ActiveSheet.PageSetup.CenterFooter:=第&P页;c.页眉到顶端边距2cm:ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin:=2/0.035;d.页脚到底端边距3cm:ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin:=3/0.035;e.顶边距2cm:ExcelApplication1.ActiveSheet.PageSetup.TopMargin:=2/0.035;f.底边距2cm:ExcelApplication1.ActiveSheet.PageSetup.BottomMargin:=2/0.035;g.左边距2cm:ExcelApplication1.ActiveSheet.PageSetup.LeftMargin:=2/0.035;h.右边距2cm:ExcelApplication1.ActiveSheet.PageSetup.RightMargin:=2/0.035;i.页面水平居中:ExcelApplication1.ActiveSheet.PageSetup.CenterHorizontally:=2/0.035;j.页面垂直居中:ExcelApplication1.ActiveSheet.PageSetup.CenterVertically:=2/0.035;k.打印单元格网线:ExcelApplication1.ActiveSheet.PageSetup.PrintGridLines:=True;17)拷贝操作:a.拷贝整个工作表:ExcelApplication1.ActiveSheet.Used.Range.Copy;b.拷贝指定区域:ExcelApplication1.ActiveSheet.RangeA1:E2.Copy;c.从A1位置开始粘贴:ExcelApplication1.ActiveSheet.Range.A1.PasteSpecial;d.从文件尾部开始粘贴:ExcelApplication1.ActiveSheet.Range.PasteSpecial;18)插入一行或一列:a.ExcelApplication1.ActiveSheet.Rows2.Insert;b.ExcelApplication1.ActiveSheet.Columns1.Insert;19)删除一行或一列:a.ExcelApplication1.ActiveSheet.Rows2.Delete;b.ExcelApplication1.ActiveSheet.Columns1.Delete;20)打印预览工作表:ExcelApplication1.ActiveSheet.PrintPreview;21)打印输出工作表:ExcelApplication1.ActiveSheet.PrintOut;22)工作表保存:ifnotExcelApplication1.ActiveWorkBook.SavedthenExcelApplication1.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,ExcelWorkbook和ExcelWorksheetvarasheet1,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.add(range,true);5)加上二维图的标题achart.Chart.HasTitle:=True;achart.Chart.ChartTitle.Characters.Text:=Excle二维图学完这个你就成为excel高手了!&下面,以Delphi为例,说明这种调用方法。Unitexcel;InterfaceUsesWindows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,ComObj,ComObj是操作OLE对象的函数集TypeTForm1=class(TForm)Button1:TButton;ProcedureButton1Click(Sender:Tobject);PrivatePrivatedeclarationPublicPublicdeclarationend;varForm1:Tform1;Implementation$R*.DFMprocedureTForm1.Button1Click(sender:Tobject);vareclApp,WordBook:Variant;声明为OLEAutomation对象xlsFileName:string;beginxlsFileName:=ex.xls;try创建OLE对象:ExcelApplication与WordBookeclApp:=CreateOleObject(Excel.Application);WorkBook:=CreateOleObject(Excel.Sheet);ExceptApplication.MessageBox(你的机器没有安装MicrosoftExcel,使用MicrosoftExcel,MB_OK+MB_ICONWarning);Exit;End;TryShowMessage(下面演示:新建一个XLS文件,并写入数据,并关闭它。);WorkBook:=eclApp.workbooks.Add;EclApp.Cells(1,1):=字符型;EclApp.Cells(2,1):=Excel文件;EclApp.Cells(1,2):=Money;EclApp.Cells(2,2):=10.01;EclApp.Cells(1,3):=日期型;EclApp.Cells(2,3):=Date;WorkBook.SaveAS(xlsFileName);WorkBook.close;ShowMessage(下面演示:打开刚创建的XLS文件,并修改其中的内容,然后,由用户决定是否保存。);Workbook:=eclApp.WorkBooks.Open(xlsFileName);EclApp.Cells(1,4):=Excel文件类型;IfMessageDlg(xlsFileName+已经被修改,是否保存?,mtConfirmation,mbYes,mbNo,0)=mrYesthenWorkBook.SaveElseWorkBook.Saved:=True;放弃保存Workbook.Close;EclApp.Quit;/退出ExcelApplication释放Variant变量eclApp:=Unassigned;exceptshowMessage(不能正确操作Excel文件。可能是该文件已被其他程序打开,或系统错误。);WorkBook.close;EclApp.Quit;释放Variant变量eclApp:=Unassigned;end;end;end-一个操作Excel的单元这里给出一个Excel的操作单元,函概了部分常用Excel操作,不是我写的,是从Experts-Exchange看到后收藏起来的,给大家参考。/该文件操作单元封装了大部分的Excel操作/usetomanipulateExcelxlsFile/DragonP.C.<2000.05.10>unitExcelUnit;interfaceusesDialogs,Messages,SysUtils,Grids,Cmp_Sec,ComObj,Ads_Misc;!AddablankWorkSheetFunctionExcelAddWorkSheet(Excel:Variant):Boolean;!CloseExcelFunctionExcelClose(Excel:Variant;SaveAll:Boolean):Boolean;!ReturnstheColumnStringValuefromitsintegerequilavent.FunctionExcelColIntToStr(ColNum:Integer):ShortString;!ReturnstheColumnIntegerValuefromitsAlphaequilavent.FunctionExcelColStrToInt(ColStr:ShortString):Integer;!CloseAllWorkbooks.Allworkbookscanbesavedornot.FunctionExcelCloseWorkBooks(Excel:Variant;SaveAll:Boolean):Boolean;!CopiesarangeofExcelCellstoaDelphiStringGrid.IfsuccessfulTrueisreturned,Falseotherwise.IfSizeStringGridToFitisTruethentheStringGridisresizedtobeexactlythecorrectdimensionstoreceivetheinputExcelcells,otherwisetheStringGridisnotresized.IfClearStringGridFirstistruethenanycellsoutsidetheinputrangearecleared,otherwiseexistingvaluesareretained.PleasenotthattheExcelcellcoordinatesare1basedandtheDelphiStringGridcoordinatesarezerobased.FunctionExcelCopyToStringGrid(Excel:Variant;ExcelFirstRow:Integer;ExcelFirstCol:Integer;ExcelLastRow:Integer;ExcelLastCol:Integer;StringGrid:TStringGrid;StringGridFirstRow:Integer;StringGridFirstCol:Integer;MaketheStringGridthesamesizeastheinputrangeSizeStringGridToFit:Boolean;cellsoutsideinputrangeinStringGridareclearedClearStringGridFirst:Boolean):Boolean;!DeleteaWorkSheetbyNameFunctionExcelDeleteWorkSheet(Excel:Variant;SheetName:ShortString):Boolean;!MovesthecursortothelastrowandcolumnFunctionExcelEnd(Excel:Variant):Boolean;!FindsAvalueandmovesthecursorthere.Ifthevalueisnotfoundthenthecursordoesnotmove.Ifnothingisfoundthenfalseisreturned,Trueotherwise.FunctionExcelFind(Excel:Variant;FindString:ShortString):Boolean;!FindsAvalueinarangeandmovesthecursorthere.Ifthevalueisnotfoundthenthecursordoesnotmove.Ifnothingisfoundthenfalseisreturned,Trueotherwise.FunctionExcelFindInRange(Excel:Variant;FindString:ShortString;TopRow:Integer;LeftCol:Integer;LastRow:Integer;LastCol:Integer):Boolean;!FindsAvalueinarangeandmovesthecursorthere.Ifthevalueisnotfoundthenthecursordoesnotmove.Ifnothingisfoundthenfalseisreturned,Trueotherwise.Thesearchdirectionscanbedefined.IfyouwantrowsearchestogofromlefttorightthenSearchRightshouldbesettotrue,Falseotherwise.IfyouwantcolumnsearchestogofromtoptobottomthenSearchDownshouldbesettotrue,falseotherwise.IfRowsFirstissettotruethenallthecolumnsinacompleterowwillbesearched.FunctionExcelFindValue(Excel:Variant;FindString:ShortString;TopRow:Integer;LeftCol:Integer;LastRow:Integer;LastCol:Integer;SearchRight:Boolean;SearchDown:Boolean;RowsFirst:Boolean):Boolean;!ReturnsTheFirstColFunctionExcelFirstCol(Excel:Variant):Integer;!ReturnsTheFirstRowFunctionExcelFirstRow(Excel:Variant):Integer;!ReturnsthenameofthecurrentlyactiveworksheetasashortstringFunctionExcelGetActiveSheetName(Excel:Variant):ShortString;!Getstheformulainacell.FunctionExcelGetCellFormula(Excel:Variant;RowNum,ColNum:Integer):ShortString;!ReturnsthecontentsofacellasashortstringFunctionExcelGetCellValue(Excel:Variant;RowNum,ColNum:Integer):ShortString;!ReturnsthethecurrentcolumnFunctionExcelGetCol(Excel:Variant):Integer;!ReturnsthethecurrentrowFunctionExcelGetRow(Excel:Variant):Integer;!MovesthecursortothelastcolumnFunctionExcelGoToLastCol(Excel:Variant):Boolean;!MovesthecursortothelastrowFunctionExcelGoToLastRow(Excel:Variant):Boolean;!MovesthecursortotheLeftmostColumnFunctionExcelGoToLeftmostCol(Excel:Variant):Boolean;!MovesthecursortotheToprowFunctionExcelGoToTopRow(Excel:Variant):Boolean;!MovesthecursortoHomeposition,i.e.,A1FunctionExcelHome(Excel:Variant):Boolean;!ReturnsTheLastColumnFunctionExcelLastCol(Excel:Variant):Integer;!ReturnsTheLastRowFunctionExcelLastRow(Excel:Variant):Integer;!OpenthefileyouwanttoworkwithinExcel.IfyouwanttotakeadvantageofoptionalparametersthenyoushoulduseExcelOpenFileComplexFunctionExcelOpenFile(Excel:Variant;FileName:String):Boolean;!OpenthefileyouwanttoworkwithinExcel.IfyouwanttotakeadvantageofoptionalparametersthenyoushoulduseExcelOpenFileComplexFunctionExcelOpenFileComplex(Excel:Variant;FileName:String;UpdateLinks:Integer;ReadOnly:Boolean;Format:Integer;Password:ShortString):Boolean;!Savestherangeonthecurrentlyactivesheettotovaluesonly.FunctionExcelPasteValuesOnly(Excel:Variant;ExcelFirstRow:Integer;ExcelFirstCol:Integer;ExcelLastRow:Integer;ExcelLastCol:Integer):Boolean;!Renamesaworksheet.FunctionExcelRenameSheet(Excel:Variant;OldName:ShortString;NewName:ShortString):Boolean;!SavestherangeonthecurrentlyactivesheettoaDBase4table.FunctionExcelSaveAsDBase4(Excel:Variant;ExcelFirstRow:Integer;ExcelFirstCol:Integer;ExcelLastRow:Integer;ExcelLastCol:Integer;OutFilePath:ShortString;OutFileName:ShortString):Boolean;!Savestherangeonthecurrentlyactivesheettoatextfile.FunctionExcelSaveAsText(Excel:Variant;ExcelFirstRow:Integer;ExcelFirstCol:Integer;ExcelLastRow:Integer;ExcelLastCol:Integer;OutFilePath:ShortString;OutFileName:ShortString):Boolean;!Selectsarangeonthecurrentlyactivesheet.Fromthecurrentcursorpositionablockisselecteddownandtotheright.Theblockproceedsdownuntilanemptyrowisencountered.Theblockproceedsrightuntilanemptycolumnisencountered.FunctionExcelSelectBlock(Excel:Variant;FirstRow:Integer;FirstCol:Integer):Boolean;!Selectsarangeonthecurrentlyactivesheet.Fromthecurrentcursorpositionablockisselectedthatcontainsthecurrentlyactivecell.Theblockproceedsineachdirectionuntilanemptyroworcolumnisencountered.FunctionExcelSelectBlockWhole(Excel:Variant):Boolean;!SelectsacellonthecurrentlyactivesheetFunctionExcelSelectCell(Excel:Variant;RowNum,ColNum:Integer):Boolean;!SelectsarangeonthecurrentlyactivesheetFunctionExcelSelectRange(Excel:Variant;FirstRow:Integer;FirstCol:Integer;LastRow:Integer;LastCol:Integer):Boolean;!SelectsanExcelSheetByNameFunctionExcelSelectSheetByName(Excel:Variant;SheetName:String):Boolean;!Setstheformulainacell.Remembertoincludetheequalssign=.IfthefunctionfailsFalseisreturned,Trueotherwise.FunctionExcelSetCellFormula(Excel:Variant;FormulaString:ShortString;RowNum,ColNum:Integer):Boolean;!SetsthecontentsofacellasashortstringFunctionExcelSetCellValue(Excel:Variant;RowNum,ColNum:Integer;Value:ShortString):Boolean;!SetsaColumnWidthonthecurrentlyactivesheetFunctionExcelSetColumnWidth(Excel:Variant;ColNum:Integer;ColumnWidth:Integer):Boolean;!SetExcelVisibilityFunctionExcelSetVisible(Excel:Variant;IsVisible:Boolean):Boolean;!Savestherangeonthecurrentlyactivesheettovaluesonly.FunctionExcelValuesOnly(Excel:Variant;ExcelFirstRow:Integer;ExcelFirstCol:Integer;ExcelLastRow:Integer;ExcelLastCol:Integer):Boolean;!ReturnstheExcelVersionasaShortString.FunctionExcelVersion(Excel:Variant):ShortString;FunctionIsBlockColSide(Excel:Variant;RowNum:Integer;ColNum:Integer):Boolean;Forward;unctionIsBlockRowSide(Excel:Variant;RowNum:Integer;ColNum:Integer):Boolean;Forward;implementationtype/DeclaretheconstantsusedbyExcelSourceType=(xlConsolidation,xlDatabase,xlExternal,xlPivotTable);Orientation=(xlHidden,xlRowField,xlColumnField,xlPageField,xlDataField);RangeEnd=(NoValue,xlToLeft,xlToRight,xlUp,xlDown);ExcelPasteType=(xlAllExceptBorders,xlNotes,xlFormats,xlValues,xlFormulas,xlAll);CAUTION!THES

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论