前言
最近在做机房收费系统的时候,遇到了将查询结果导出为Excel表的形式。一开始感觉这个很难,但经过查阅相关的博客后,还是比较顺利的实现功能了。
正文
在VB中导出Excel表,实际上就是VB与Excel的交互。首先我们的计算机中要有Excel,然后从VB程序中引用下框中内容。
PS:如果一开始没有找到这一项,也不用着急。单击右侧的“浏览”按钮即可,找到自己电脑上Excel文件的位置,添加上再引用就OK。(为方便快速找到Excel文件的位置,我们可以先找到Excel.exe程序,右击查看文件所在位置,在浏览时候直接定位到该位置。)
引用完成后,下一步就需要让VB能认识Excel了。为让他们能互相认识,可以和睦共处,就需要我们做下面的工作来帮助他们了。
结语
在机房收费系统中,多次用到了Excel表的导出,所以我将这部分代码声明到了模块中,用到的时候直接用Call调用即可。在导出选择是否保存时,点击否会出现错误,而不是直接关闭。所以在调用的同时,增加了一步错误处理。
最近在做机房收费系统的时候,遇到了将查询结果导出为Excel表的形式。一开始感觉这个很难,但经过查阅相关的博客后,还是比较顺利的实现功能了。
正文
在VB中导出Excel表,实际上就是VB与Excel的交互。首先我们的计算机中要有Excel,然后从VB程序中引用下框中内容。
PS:如果一开始没有找到这一项,也不用着急。单击右侧的“浏览”按钮即可,找到自己电脑上Excel文件的位置,添加上再引用就OK。(为方便快速找到Excel文件的位置,我们可以先找到Excel.exe程序,右击查看文件所在位置,在浏览时候直接定位到该位置。)
引用完成后,下一步就需要让VB能认识Excel了。为让他们能互相认识,可以和睦共处,就需要我们做下面的工作来帮助他们了。
Dim ExcelApp As Excel.Application '定义Excel表格应用程序
Dim ExcelBook As Excel.Workbook '定义Excel表格工作簿
Dim ExcelSheet As Excel.Worksheet '定义Excel表格工作表
Dim i As Integer '定义excel表中的行变量
Dim j As Integer '定义excel表中的列变量
Set ExcelApp = CreateObject("Excel.application") '创建一个excel应用程序对象
Set ExcelBook = ExcelApp.Workbooks.Add '创建一个工作簿
Set ExcelSheet =ExcelBook.Worksheets(1) '创建一个工作表
DoEvent '因以下代码运行时间较长,所以转让控制权,让操作系统处理其他事件,避免操作不响应误认为死机
If MSFlexGrid1.Rows <= 1 Then
MsgBox "没有可导出数据!",vbOKOnly, "温馨提示:"
End
If With MSFlexGrid1
For i = 0 To .Rows - 1 '循环添加行内容
For j = 0 To .Cols - 1 '循环添加列内容
DoEvents
ExcelApp.ActiveSheet.Cells(i + 1, j+ 1) = .TextMatrix(i, j) '添加单元格内容
Next j
Next i
End With
ExcelApp.ActiveWorkbook.SaveAs App.Path& "\学生查询.xls" '设置Excel保存路径
ExcelApp.ActiveWorkbook.Saved = True '保存excel表格
MsgBox "导出成功!", vbOKOnly, "温馨提示:"
ExcelApp.Visible = True '显示excel表格
Set ExcelApp = Nothing '释放ExcelApp对象
Set ExcelBook = Nothing
Set ExcelSheet = Nothing
结语
在机房收费系统中,多次用到了Excel表的导出,所以我将这部分代码声明到了模块中,用到的时候直接用Call调用即可。在导出选择是否保存时,点击否会出现错误,而不是直接关闭。所以在调用的同时,增加了一步错误处理。