收藏 分享(赏)

VB操作Excel实现读取写入打印.doc

上传人:精品资料 文档编号:9852766 上传时间:2019-09-11 格式:DOC 页数:8 大小:54.50KB
下载 相关 举报
VB操作Excel实现读取写入打印.doc_第1页
第1页 / 共8页
VB操作Excel实现读取写入打印.doc_第2页
第2页 / 共8页
VB操作Excel实现读取写入打印.doc_第3页
第3页 / 共8页
VB操作Excel实现读取写入打印.doc_第4页
第4页 / 共8页
VB操作Excel实现读取写入打印.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、VB 操作 EXCEL,实现数据写入以及数据组合1】定义 EXCEL 的一系列操作Dim xlApp As Excel.ApplicationDim ExcelShowStr As StringSet xlApp = CreateObject(“Excel.Application“)xlApp.Visible = trueAppLogFile.WriteLine (CStr(Date) & “_“ & CStr(Time) & “:Set xlApp=new Excel.Application“)Dim xlBook As WorkbookDim xlSheet As WorksheetDim

2、 xlrow, sheetIndex, sheetColumn As Integerfileurl =“D:VB 英迈TemplateWriteData.xls“ Editable=空值Set xlBook = xlApp.Workbooks.Open(fileUrl, Editable) 打开 EXCEL 模板Set xlSheet = xlApp.ActiveSheet-【2】写入数据的操作xlSheet.Range(xlSheet.Cells(beginRow, 1), xlSheet.Cells(endRow - 1, 1).Merge 合并单元格xlSheet.Cells(begin

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

4、的字体颜色xlSheet.Range(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 单元格的背景颜色定义数组,一次性写入,列子如下:If DetailRes.RecordCount 0 ThenDetailRes.MoveFirstFo

5、r row2 = 0 To DetailRes.RecordCount - 1Dim arrayProduct(50, 17) As StringarrayProduct(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, 4) =

6、 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“)arrayProduct(row2, 9) = DetailRes.Fields(“oper_profit_per“)

7、& “%“arrayProduct(row2, 10) = DetailRes.Fields(“dio“)arrayProduct(row2, 11) = DetailRes.Fields(“dpo“)arrayProduct(row2, 12) = DetailRes.Fields(“dso“)arrayProduct(row2, 13) = DetailRes.Fields(“working_capital“)arrayProduct(row2, 14) = DetailRes.Fields(“interests“)arrayProduct(row2, 15) = DetailRes.Fi

8、elds(“pre_tax_income“)arrayProduct(row2, 16) = DetailRes.Fields(“roic“) & “%“DetailRes.MoveNextNext row2xlSheet.Range(xlSheet.Cells(beginRow, 3), xlSheet.Cells(endRow - 1, 19) = arrayProduct() 数组显示-【3-重点 】vb 操作 EXCEL 实现数据组合现在需要把单元格 14 行进行数据组合 在 EXCEL 中,只要选中单元格 14 行,在 点击菜单 数据 组及分级显示 组合即可达到要求!注:若组合时,收

9、缩时数据显示的是最后的那条,在 EXCEL 文件中,点击数据 组及分级显示 设置 (1)把明细数据的下方 复选框的选中状态改为不选中(2)把明细数据的右侧 复选框的选中状态改为不选中这样设置数据即可达到显示要求vb 代码如下:Rows(“10:15“).SelectSelection.Rows.Group若是需要变量传入,则: Rows(beginRow & “:“ & endRow - 1).SelectSelection.Rows.GroupVB 操作 EXCEL,实现数据读取1、定义 Excel 操作变量 Dim objExcelFile As Excel.Application Dim

10、 objWorkBook As Excel.Workbook Dim objImportSheet As Excel.Worksheet 2、打开 Excel 进程,并打开目标 Excel 文件 Set objExcelFile = New Excel.ApplicationobjExcelFile.DisplayAlerts = FalseSet objWorkBook = objExcelFile.Workbooks.Open(strFileName)Set objImportSheet = objWorkBook.Sheets(1) 3、获取 Excel 有效区域的行和列数 intLas

11、tColNum = objImportSheet.UsedRange.Columns.CountintLastRowNum = objImportSheet.UsedRange.Rows.Count 4、逐行读取 Excel 中数据 由于前两行为 Header 部分,所以需要从第三行读取 如果第 1 到第 10 个单元格的值均为空或空格,则视为空行 For intCountI = 3 To intLastRowNum Check if Empty Data Row blnNullRow = True For intI = 1 To 10 If Trim$(objImportSheet.Cell

12、s(intCountI, intI).Value) “ Then blnNullRow = False End If Next intI 若不是空行,则进行读取动作,否则继续向后遍历 Excel 中的行 If blnNullRow = False Then 获取单元格中的数据,做有效性 Check,并将合法数据创建为实体存入对象数组中 objImportSheet.Cells(intCountI, 1).Value End If Next intCountI5、退出 Excel 进程,并关闭 Excel 相关操作对象 objExcelFile.QuitSet objWorkBook = Not

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

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

15、Excel 自身的运行环境。(2)Workbook 对象Workbook 对象直接地处于 Application 对象的下层,表示一个 Excel 工作薄文件。(3)Worksheet 对象Worksheet 对象包含于 Workbook 对象,表示一个 Excel 工作表。(4)Range 对象Range 对象包含于 Worksheet 对象,表示 Excel 工作表中的一个或多个单元格。(5)Cells 对象Cells 对象包含于 Worksheet 对象,表示 Excel 工作表中的一个单元格。如果要启动一个Excel,使用 Workbook 和 Worksheet 对象,下面的代码启动

16、了 Excel 并创建了一个新的包含一个工作表的工作薄:Dim zsbexcel As Excel.ApplicationSet zsbexcel=NewExcel.Applicationzsbexcel.Visible=True如要 Excel 不可见,可使 zsbexcel.Visible=Falsezsbexcel.SheetsInNewWorkbook=1Set zsbworkbook=zsbexcel.Workbooks.Add2)设置单元格和区域值要设置一张工作表中每个单元格的值,可以使用 Worksheet 对象的 Range 属性或 Cells 属性。With zsbexcel

17、.ActiveSheet.Cells(1,2).Value=“100“.Cells(2,2).Value=“200“.Cells(3,2).Value=“=SUM(B1:B2)“.Range(“A3:A9“)=“中国人民解放军“End With要设置单元格或区域的字体、边框,可以利用 Range 对象或 Cells 对象的 Borders 属性和Font 属性:With objexcel.ActiveSheet.Range(“A2:K9“).Borders边框设置.LineStyle=xlBorderLineStyleContinuous.Weight=xlThin.ColorIndex=1E

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

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

20、程序来后台实现的。对于使用者来说,根本看不到具体过程,只看到一张张漂亮的报表轻易地被打印出来了。4)具体实例下面给出一个具体实例,它在 window98、Visual Basic6.0、Microsoft Office97 的环境下调试通过。在 VB 中启动一个新的 StandardEXE 工程,在“工程”菜单的“引用”选项下引用 Excel ObjectLibrary 然后在 Form 中添加一个命令按钮cmdExcel 最后在窗体中输入如下代码:Dim zsbexcel As Excel.ApplicationPrivate Sub cmdExcel_Click()Set zsbexcel

21、=NewExcel.Applicationzsbexcel.Visible=Truezsbexcel.SheetsInNewWorkbook=1Setzsbworkbook=zsbexcel.Workbooks.AddWith zsbexcel.ActiveSheet.Range(“A2:C9“).Borders边框设置.LineStyle=xlBorderLineStyleContinuous.Weight=xlThin.ColorIndex=1End WithWith zsbexcel.ActiveSheet.Range(“A3:C9“).Font字体设置.Size=14.Bold=Tru

22、e.Italic=True.ColorIndex=3End Withzsbexcel.ActiveSheet.Rows.HorizontalAlignment=xlVAlignCenter水平居中zsbexcel.ActiveSheet.Rows.VerticalAlignment=xlVAlignCenter垂直居中With zsbexcel.ActiveSheet.Cells(1,2).Value=“100“.Cells(2,2).Value=“200“.Cells(3,2).Value=“=SUM(B1:B2)“.Cells(1,3).Value=“中国人民解放军“.Range(“A3:A9“)=“50“End Withzsbexcel.ActiveSheet.PageSetup.Orientation=xlPortraitxlLandscapezsbexcel.ActiveSheet.PageSetup.PaperSize=xlPaperA4zsbexcel.ActiveSheet.PrintOutzsbexcel.DisplayAlerts=Falsezsbexcel.Quitzsbexcel.DisplayAlerts=TrueSet zsbexcel=Nothing

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报