机房系统(五)——【Excel表导出】

前言
最近在做机房收费系统的时候,遇到了将查询结果导出为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调用即可。在导出选择是否保存时,点击否会出现错误,而不是直接关闭。所以在调用的同时,增加了一步错误处理。

猜你喜欢

转载自blog.csdn.net/LZ15932161597/article/details/84647211