VB操作Excel实现读取写入打印_第1页
VB操作Excel实现读取写入打印_第2页
VB操作Excel实现读取写入打印_第3页
全文预览已结束

下载本文档

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

文档简介

1、VB操作EXCEL,实现数据写入以及数据组合1】定义EXCEL的一系列操作DimxlAppAsExcel.ApplicationDimExcelShowStrAsStringSetxlApp=CreateObject("Excel.Application")xlApp.Visible=trueAppLog(CStr(Date)&"_"&CStr(Time)&":SetxlApp=newExcel.Application")DimxlBookAsWorkbookDimxlSheetAsWorksheetDimxl

2、row,sheetIndex,sheetColumnAsInteger'="D:VB英迈TemplateWriteData.xls"Editable值SetxlBook=xlApp.Workbooks.Open(,Editable)'打开EXCEL棋板SetxlSheet=xlApp.ActiveSheet【2】写入数据的操作xlSheet.Range(xlSheet.Cells(beginRow,1),xlSheet.Cells(endRow-1,1).Merge'合并单元格xlSheet.Cells(beginRow,1).FormulaR1C1

3、=CustName'单行插入xlSheet.Cells(beginRow,1).VerticalAlignment=xlTop'ft直,写入数据的位置,这里为高xlSheet.Cells(beginRow,2).HorizontalAlignment=xlHAlignCenter'水平写入数据的位置,这里为居中xlSheet.Range(xlSheet.Cells(beginRow,1),xlSheet.Cells(endRow-1,19).Font.ColorIndex=ConstModule.COLOR_BLUE'单元格的字体颜色xlSheet.Range(

4、xlSheet.Cells(beginRow,1),xlSheet.Cells(endRow-1,19).Font.Bold=True'单元格的数据为粗体显示xlSheet.Range(xlSheet.Cells(beginRow,1),xlSheet.Cells(endRow-1,19).Interior.ColorIndex=ConstModule.COLOR_SILVER'单元格的背景颜色定义数组,一次性写入,列子如下:IfDetailRes.RecordCount>0ThenDetailRes.MoveFirstForrow2=0ToDetailRes.Recor

5、dCount-1DimarrayProduct(50,17)AsStringarrayProduct(row2,0)=DetailRes.Fields("Product")arrayProduct(row2,1)=DetailRes.Fields("rev")arrayProduct(row2,2)=DetailRes.Fields("sagm")arrayProduct(row2,3)=DetailRes.Fields("sagm_per")&"%"arrayProduct(row2,

6、4)=DetailRes.Fields("gp")arrayProduct(row2,5)=DetailRes.Fields("gp_per")&"%"arrayProduct(row2,6)=DetailRes.Fields("opex")arrayProduct(row2,7)=DetailRes.Fields("opex_per")&"%"arrayProduct(row2,8)=DetailRes.Fields("oper_profit&qu

7、ot;)arrayProduct(row2,9)=DetailRes.Fields("oper_profit_per")&"%"arrayProduct(row2,10)=DetailRes.Fields("dio")arrayProduct(row2,11)=DetailRes.Fields("dpo")arrayProduct(row2,12)=DetailRes.Fields("dso")arrayProduct(row2,13)=DetailRes.Fields("wo

8、rking_capital")arrayProduct(row2,14)=DetailRes.Fields("interests")arrayProduct(row2,15)=DetailRes.Fields("pre_tax_income")arrayProduct(row2,16)=DetailRes.Fields("roic")&"%"DetailRes.MoveNextNextrow2xlSheet.Range(xlSheet.Cells(beginRow,3),xlSheet.Cells

9、(endRow-1,19)=arrayProduct()数组显示【3-重点】vb操作EXCEL实现数据组合现在需要把单元格1-4行进行数据组合在EXCEL中,只要选中单元格14行,在点击菜单>>数据>>组及分级显示>>组合即可达到要求!注:若组合时,收缩时数据显示的是最后的那条,在EXCEL文件中,点击数据>>组及分级显示>>设置>>把明细数据的下方复选框的选中状态改为不选中把明细数据的右侧复选框的选中状态改为不选中这样设置数据即可达到显示要求vb代码如下:Rows("10:15").SelectSel

10、ection.Rows.Group若是需要变量传入,则:Rows(beginRow&":"&endRow-1).SelectSelection.Rows.GroupVB操作EXCEL,实现数据读取1、定义Excel操作变量DimobjExcelExcel.ApplicationDimobjWorkBookAsExcel.WorkbookDimobjImportSheetAsExcel.Worksheet2、打开Excel进程,并打开目标Excel文件SetobjExcelFile=NewExcel.ApplicationobjExcel=FalseSetob

11、jWorkBook=objExcel(str)SetobjImportSheet=objWorkBook.Sheets(1)3、获取Excel有效区域的行和歹U数ntLastColNum=objImportSheet.UsedRange.Columns.CountntLastRowNum=objImportSheet.UsedRange.Rows.Count4、逐行读取Excel中数据由丁前两行为Header部分,所以需要从第三行读取如果第1到第10个单元格的值均为空或空格,则视为空行ForintCountI=3TointLastRowNum'CheckifEmptyDataRowbl

12、nNullRow=TrueForintI=1To10fTrim$(objImportSheet.Cells(intCountI,intI).Value)<>""ThenblnNullRow=FalseEndIfNextintI若不是空行,则进行读取动作,否则继续向后遍历Excel中的行fblnNullRow=FalseThen获取单元格中的数据,做有效性Check,并将合法数据创建为实体存入对象数组中objImportSheet.Cells(intCountI,1).ValueEndIfNextintCountI5、退出Excel进程,并关闭Excel相关操作对

13、象objExcelSetobjWorkBook=NothingSetobjImportSheet=NothingSetobjExcelFile=Nothing基于VB和EXCEL的报表设计及打印在现代管理信息系统的开发中,经常涉及到数据信息的分析、加工,最终还需把统计结果形成各种形式的报表提供给领导决策参考,或进行外部交流。在VisualBasic中制作报表,通常是用数据环境设计器(DataEnvironmentDesigner)与数据报表设计器(DataReportDesigner),或者使用第三方产品来完成。但对于大多数习惯于Excel报表的用户而言,用以上方法生成的报表在格式和功能等方面

14、往往不能满足他们的要求。由于Excel具有自己的对象库,在VisualBasic工程中可以加以引用,通过对Excel使用OLE自动化,可以创建一些外观整洁的报表,然后打印输出。这样实现了VisualBasi应用程序对Excel的控制。本文将针对一个具体实例,阐述基于VB和EXCEL的报表设计及打印过程。创建Excel对象Excel对象模型包括了128个不同的对象,从矩形、文本框等简单的对象到透视表,图表等复杂的对象。下面简单介绍一下其中最重要,也是用得最多的五个对象。Application对象Application对象处于Excel对象层次结构的顶层,表示Excel自身的运行环境。Workbo

15、ok对象Workbook对象直接地处于Application对象的下层,表示一个Excel工作薄文件。Worksheet对象Worksheet对象包含于Workbook对象,表示一个Excel工作表。Range对象Range对象包含于Worksheet对象,表示Excel工作表中的一个或多个单元格。Cells对象Cells对象包含于Worksheet对象,表示Excel工作表中的一个单元格。如果要启动一个Excel,使用Workbook和Worksheet对象,下面的代码启动了Excel并创建了一个新的包含一个工作表的工作薄:DimzsbexcelAsExcel.ApplicationSetz

16、sbexcel=NewExcel.Applicationzsbexcel.Visible=True如要Excel不可见,可使zsbexcel.Visible=Falsezsbexcel.SheetsInNewWorkbook=1Setzsbworkbook=zsbexcel.Workbooks.Add设置单元格和区域值要设置一张工作表中每个单元格的值,可以使用Worksheet对象的Range属性或Cells属性。Withzsbexcel.ActiveSheet.Cells(1,2).Value="100”.Cells(2,2).Value="200”.Cells(3,2)

17、.Value="=SUM(B1:B2)”.Range("A3:A9”)="中国人民解放军"EndWith要设置单元格或区域的字体、边框,可以利用Range对象或Cells对象的Borders属性和Font属性:Withobjexcel.ActiveSheet.Range("A2:K9”).Borders'边框设置.LineStyle=xlBorderLineStyleContinuous.Weight=xlThin.ColorIndex=1EndWithWithobjexcel.ActiveSheet.Range("A3:K9

18、”).Font'字体设置.Size=14.Bold=True.Italic=True.ColorIndex=3EndWith通过对Excel单元格和区域值的各种设置的深入了解,可以创建各种复杂、美观、满足需要的、具有自己特点的报表。预览及打印生成所需要的工作表后,就可以对EXCEL发出预览、打印指令了。zsbexcel.ActiveSheet.PageSetup.Orientation=xlPortrait'设置打印方向zsbexcel.ActiveSheet.PageSetup.PaperSize=xlPaperA4'设置打印纸的打下zsbexcel.Caption=

19、"打印预览"'设置预览窗口的标题zsbexcel.ActiveSheet.PrintPreview'打印预览zsbexcel.ActiveSheet.PrintOut'打印输出通过打印方向、打印纸张大小的设置,不断进行预览,直到满意为止,最终进行打印输出。为了在退出应用程序后EXCEL不提示用户是否保存已修改的文件,需使用如下语句:zsbexcel.DisplayAlerts=Falsezsbexcel.Quit'退出EXCELzsbexcel.DisplayAlerts=True如此设计的报表打印是通过EXCEL程序来后台实现的。对于使用者

20、来说,根本看不到具体过程,只看到一张张漂亮的报表轻易地被打印出来了。4)具体实例下面给出一个具体实例,它在window98、VisualBasic6.0、MicrosoftOffice97的环境下调试通过。在VB中启动一个新的StandardEXE工程,在攵程”菜单的引用”选项下引用ExcelObjectLibrary然后在Form中添加一个命令按钮cmdExcel最后在窗体中输入如下代码:DimzsbexcelAsExcel.ApplicationPrivateSubcmdExcel_Click()Setzsbexcel=NewExcel.Applicationzsbexcel.Visible=Truezsbexcel.SheetsInNewWorkbook=1Setzsbworkbook=zsbexcel.Workbooks.AddWithzsbexcel.ActiveSheet.Range("A2:C9”).Borders'边框设置.LineStyle=xlBorderLineStyleContinuous.Weight=xlThin.ColorIndex

温馨提示

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

评论

0/150

提交评论