Vbscript生成Excel报表的常用操作总结

所属分类: 脚本专栏 / vbs 阅读数: 999
收藏 0 赞 0 分享

使用QTP自动化测试结束后,经常需要将测试结果写入Excel中,这里就把一些常用对Excel操作的方法进行归纳、整理,方便使用时查阅。支持Office Excel 2003版本,不支持2007版本。

Vbscript代码

On Error Resume Next
 Dim FileName, SheetName, Text, ExcelApp, ExcelBook, ExcelSheet
 FileName = "D:/Book1.xls"
 SheetName = "新建表"
 Text = "Hello QTP ! 你好, QuickTestProfessional !"
Set ExcelApp = CreateObject("Excel.Application")
 Set ExcelBook= ExcelApp.Workbooks.Open(FileName)
 Set ExcelSheet = ExcelBook.Sheets.Add '插入工作表
 'Set ExcelSheet = ExcelBook.Sheets.Item(SheetName) '获得指定工作表
' *************** 对数据表的操作 ***************
 For i=1 To ExcelBook.Sheets.Count
 If ExcelBook.Sheets(i).Name=SheetName Then
 ExcelApp.DisplayAlerts=False
 ExcelBook.Sheets(i).Delete '删除工作表
 ExcelApp.DisplayAlerts=True
 Exit For
 End If
 Next
 ExcelSheet.Name = SheetName '重命名工作表
' *************** 对文字的操作 ***************
 ExcelSheet.Cells(1,2) = Text
 ExcelSheet.Range("B2","B20").Value = Text
 ExcelSheet.Cells(1,2).Font.Name = "Verdana" '设置字体
 ExcelSheet.Cells(1,2).Font.Size = 25 '设置字号
 ExcelSheet.Cells(1,2).Font.Color = RGB(0, 0, 255) '设置字体颜色
 ExcelSheet.Cells(2,2).Font.Bold = True '文字加粗
 ExcelSheet.Cells(3,2).Font.Italic = True '文字倾斜
 ExcelSheet.Cells(4,2).Font.Underline = True '文字加下划线
 ExcelSheet.Cells(5,2).Font.Strikethrough = True '文字加删除线
 ExcelSheet.Cells(6,2).Characters(2, 2).Font.Superscript = True '设定文字上标
 ExcelSheet.Cells(7,2).Characters(2, 2).Font.Subscript = True '设定文字下标
' *************** 对单元格的操作 ***************
 ExcelSheet.Columns("B").ColumnWidth = 40 '设置列宽
 'ExcelSheet.Columns("B").AutoFit '自动调整列宽
 ExcelSheet.Range("B11").RowHeight=40 '设置行高
 'ExcelSheet.Rows(11).Rows.AutoFit '自动调整行高
 ExcelSheet.Range("B8","D8").Merge '合并单元格,水平方向
 ExcelSheet.Range("B18","B19").Merge '合并单元格,垂直方向
 ExcelSheet.Range("B8","D8").Borders.Color = RGB(0,255,0) '设定单元格边框颜色
 ExcelSheet.Range("B12").Interior.Color = RGB(255,0,0) '设置单元格背景色
 ExcelSheet.Cells(9,2).WrapText = True '自动换行
 ExcelSheet.Cells(10,2).HorizontalAlignment = 3 '设置水平对齐,1常规,2靠左,3居中,4靠右
 ' 5填充,6两端对齐,7跨列居中,8分散对齐
 ExcelSheet.Cells(11,2).VerticalAlignment = 1 '设置垂直对齐,1靠上,2居中,3靠下
 ' 4两端对齐,5分散对齐
 ExcelSheet.Range("B14").Borders(1).LineStyle=1 '设置左边框样式
 ExcelSheet.Range("B14").Borders(2).LineStyle=2 '设置右边框样式
 ExcelSheet.Range("B14").Borders(3).LineStyle=3 '设置上边框样式
 ExcelSheet.Range("B14").Borders(4).LineStyle=4 '设置下边框样式
 ExcelSheet.Range("B15").ClearContents '清除单元格内容
 ExcelSheet.Range("B16").Formula="=1+10" '设置单元格公式
 ExcelSheet.Range("B17").AddComment("Hello" & vbLf & "QTP") '插入批注
 ExcelSheet.Range("B17").Comment.Visible=True '显示批注
 'ExcelSheet.Range("B17").ClearComments '清除批注,与删除批注效果相同
 'ExcelSheet.Range("B17").Comment.Delete '删除批注,与清除批注效果相同
 'ExcelSheet.SaveAs("D:\Book2.xls") '另存为
ExcelBook.Save
 ExcelBook.Close
 ExcelApp.Quit
 Set ExcelBook = Nothing
 Set ExcelApp = Nothing
 SystemUtil.CloseProcessByName "Excel.exe" '如果仍有Excel.exe进程,可使用这句关闭进程
 If Err.number>0 Then
 MsgBox Err.Description
 End If
 On Error GoTo 0

补充:

ExcelApp.DisplayAlerts = False ‘关闭兼容性检查
ExcelBook = ExcelApp.Workbooks.Add ‘新建Excel
ExcelSheet = ExcelBook.ActiveSheet ‘激活第一个表
ExcelSheet.Columns(“A:E”).AutoFit() ‘设置A到E列自动调整列宽
ExcelBook.SaveAs(“D:\Book2.xls”,FileFormat:=Excel.XLFileFormat.xlAddIn) ‘文件另存为

更多精彩内容其他人还在看

vbscript Split函数用法详解(字符串转数组函数)

本文详细介绍了vbscript中split函数的用法,有关split函数的一些实例,vbscript中split函数的语法介绍,有需要的朋友参考下
收藏 0 赞 0 分享

VBS实现将Excel表格保存为txt文本

希望能够找到个能给excel表另存为TXT的VBS代码,虽然另存为可以选择,但还是需要直接VBS执行这一步另存为TXT格式的,应该如何写代码呢
收藏 0 赞 0 分享

vbs解决处理TXT文本数据相关问题实现代码

使用vbs处理txt数据时,会遇到一些问题,本文将提供详细的解决方法,希望可以帮助你们
收藏 0 赞 0 分享

关于vbs 生成静态页面过程中出现的问题

访问某个aspx页面,然后把服务器返回的页面以filestream 的形式保存为html格式,接下来将介绍实现代码
收藏 0 赞 0 分享

dim函数第三个参数设置截取字符的长度问题

dim函数的第三个参数,也就是截取字符的长度,我在设置这个的时候,出了些问题,提示无效的过程调用或参数,本文详细介绍如何解决
收藏 0 赞 0 分享

邪恶的eval和new Function使用介绍

这些代码可以干什么?可以肯定的是可以干很多猥琐的事
收藏 0 赞 0 分享

WScript.Shell对象SpecialFolders属性未公开文档分享

WshShell对象的SpecialFolders属性返WshSpecialFolders 对象,该对象是一个特殊文件夹集合,其中包含整套Windows特殊文件夹
收藏 0 赞 0 分享

用VBS修改(设置)系统时间和日期的代码

用 VBS 把系统的时间修改到2038年1月19日3时14分07秒之后,这样某些依赖于 Unix 时间戳的程序就会出问题。那么怎样用 VBS 修改系统的时间呢
收藏 0 赞 0 分享

VBS For Next循环的一些细节

For Next 语句是 VBS 中常用的循环语句,你可能已经用过无数次 For Next 循环,但是你是否注意过它的一些细节呢
收藏 0 赞 0 分享

VBS For Next循环的陷阱分享

在《VBS For Next循环的一些细节》中说到了 For Next 循环的控制变量仅仅在循环开始前求值一次,但是其中存在一处陷阱
收藏 0 赞 0 分享
查看更多