机房收费系统之导出为Excel

在学生信息管理系统中,有很多查询窗体。在机房收费系统中,也不例外。不过,前者只要求将数据显示在窗体中,后者则多了一步,即:将查询到的信息导出为Excel表的形式。

这样的工作好熟悉,因为在作品展中试过很多次了。那时候,还没有学数据库,师父就让我们用Excel表来存储数据,以显示出来。所以,做起来还是比较得心应手的。

第一个窗体,学生查看上机记录,没有多想,就直接在导出为Excel命令下编写代码:

<span style="font-family:KaiTi_GB2312;font-size:24px;">Private Sub cmdExcel_Click()

    '直接创建程序导出到Excel表中

    Dim xlsApp As New Excel.Application    '定义Excel程序
    Dim xlsBook As Excel.Workbook          '定义工作簿
    Dim xlsSheet As Excel.Worksheet        '定义工作表

    Dim i As Integer                       '定义控件的行值
    Dim j As Integer                       '定义控件的列值

    If FlexOnlineRecord.Text = "" Then     '判断控件是否有内容
        MsgBox "没有记录可导出!", vbOKOnly + vbExclamation, "警告"
        Exit Sub
    Else
        Set xlsBook = xlsApp.Workbooks.Add(1)            '创建新的工作簿
        Set xlsSheet = Excel.ActiveWorkbook.ActiveSheet  '创建新的工作表单

        For i = 0 To FlexOnlineRecord.Rows - 1           '显示数据
            For j = 0 To FlexOnlineRecord.Cols - 1
            xlsSheet.Cells(i + 1, j + 1) = FlexOnlineRecord.TextMatrix(i, j)
            Next j
        Next i

        xlsApp.Visible = True              '显示Excel表格
        'Set xlsApp = Nothing '交还控制给Excel
        xlsApp.Sheets(1).Columns.EntireColumn.AutoFit '自动调整列宽
    End If

End Sub</span>

后来想想,好几个窗体都要求将查询结果导入到Excel中,这样重复的代码量太多了,何不妨自己添加一个过程,到时候直接调用就可以了。于是,在模块中添加了一个名为ExportToExcel的过程,

<span style="font-family:KaiTi_GB2312;font-size:24px;">Public Sub ExportToExcel(FormName As Form, flex As MSFlexGrid)   </span>
<span style="font-family:KaiTi_GB2312;font-size:24px;">    '导出为Excel表的过程,前者为当前工作的窗体名,后者为控件名。

    Dim xlsApp As Object
    Dim xlsBook As Object
    Dim xlsSheet As Object

    Screen.MousePointer = vbHourglass

    Set xlsApp = New Excel.Application
    Set xlsBook = xlsApp.Workbooks.Add
    Set xlsSheet = xlsBook.Worksheets(1)

    On Error GoTo Err_proc

    Dim i As Integer
    Dim j As Integer

    With flex                           '将数据写入Excel表中
        For i = 0 To .Rows - 1
            For j = 0 To .Cols - 1
                xlsSheet.Cells(i + 1, j + 1).Value = "'" & .TextMatrix(i, j)

            Next j
        Next i
    End With

    xlsApp.Sheets(1).Columns.EntireColumn.AutoFit '自动调整列宽
    xlsApp.Visible = True
    Screen.MousePointer = vbDefault
    Exit Sub

Err_proc:

    Screen.MousePointer = vbDefault
    MsgBox "请确认您的电脑已安装Excel,或是否安装正确!", vbExclamation, "机房收费系统"

End Sub
</span>

其中,也许有的电脑上没有安装Excel程序,所以可以事先进行错误处理。有了这样一个过程,就方便多了,第二个窗体,......,后面的窗体,就可以在导出为Excel命令下直接编写代码为:

<span style="font-family:KaiTi_GB2312;font-size:24px;">Private Sub cmdExcel_Click()

    Call ExportToExcel(frmInquireRechargeRecord, MSFlexRechargeRecord)              ’调用导出为Excel表过程

End Sub</span>

这样确实简单很多,但文章的主要目的不是为了展示编写的代码,好让我们省事。而是,我想,其实,很多时候,解决问题的方法都不只只是一种,每个人思考的不同,方法也就会有所不同。代码的编写,也不是唯一的,只要自己思考过,即使运行失败了,也算是一种成功。

时间: 2024-08-30 12:00:31

机房收费系统之导出为Excel的相关文章

机房收费系统之导出Excel

        刚开始接触机房收费的时候,连上数据库,配置ODBC,登陆进去,那窗体叫一个多,不由地有种害怕的感觉,但是有人说,每天努力一点点,就会进步一点点,不会的就会少一点点,会的就会多一点点........         在看似杂乱无章的各个窗体都相互独立,其实,他们之间有着千丝万缕的关系,剪不断,理还乱.在机房收费系统中,有多处用到导出Excel表格,就这个问题做一个简单的总结.         第一种方法          打开VB-工程-应用-勾选Microsoft  Excel

机房收费系统的实现:VB中如何将MSHFlexGrid控件中的数据导出到Excel

机房收费系统中,好多查询的窗体都包含同一个功能:将数据库中查询到的数据显示在MSHFlexGrid控件中,然后再把MSHFlexGrid控件中的数据导出到Excel表格中. 虽然之前做过学生信息管理系统,不过并没有涉及到这个功能,因此记录于此,于己,回顾反思,于大家,分享学习. 方法一:在根目录中事先建立空的Excel表格 1.在与VB工程同一根目录中建立将要导入数据的Excel表格: 2.在VB事件中写代码: Private Sub cmdExport_Click() Dim i As Int

机房收费系统——VB将MSHflexgrid控件中的数据导出为Excel

            在做机房收费系统的时候,许多窗体用到的一个功能,就是将从数据库中提取出来的数据导出到Excel中.   首先,引用Microsoft Excel 14.0 Object Library   然后,写代码     Public Sub OutDataToExcel(Flex As MSHFlexGrid) '导出至Excel Dim i As Integer Dim j As Integer Dim Line As Integer Dim outExcel As Excel

VB.NET版机房收费系统---导出Excel表格

       datagridview,翻译成中文的意思是数据表格显示,使用DataGridView控件,可以显示和编辑来自不同类型的数据源的表格,将数据绑定到DataGridView控件非常简单和直观,大多数情况下,只需要设置DataSource属性即可,在绑定到包含多个列表或表的数据库源时,只需将DataMember属性设置为绑定的列表或表的字符串即可.机房收费系统多次用到数据表格的显示,并且导出为Excel表格,第一次机房收费系统是用VB版本的,她导出Excel的方法如下:        

机房收费系统之表

         机房收费系统,主要是用于对学生在机房上机的收费问题,首先要建立的是数据库,数据库中有三个角色,一般用户.管理员.操作员,管理员对操作员进行设置,然后由操作员员对一般用户的信息进行设置,注册.       首先管理员员登陆这个系统,管理员的用户名,密码,姓名,然后将机房的收费标准录入到数据库中.然后将登陆密码交给操作员,让操作员管理的上机.用户进入机房进行上网,此时开始计费,一直到学生出机房,再次刷卡下机.做系统之前,一定要理清楚表之间的关系,以及这张表有什么用,在系统的那块儿用

机房收费系统之思想性总结

一个系统,不管功能有多强大或是多简单,最重要的是它最终都将面向对象--用户.一个系统,看它成功与否,用户评价的好坏就是关键了.一个系统,只要全心全意为人民服务的精神贯穿始终,那一定不会差到哪去. 机房收费系统,其对象同样是用户,具体地说,这个系统将用户这个类实例化后,可分为三种对象,分别为:一般用户.操作员和管理员.总而言之,不管是哪种对象,时时刻刻都需要想着为其服务. 下面将从三个不同对象的角度展开来讲,看看要使得为其服务,应该做些什么. (一)一般用户 一般用户的权限在这个系统中最小,但其要

VB.NET版机房收费系统---报表

       报表,即报告情况的表格,简单的说:报表就是用表格.图表等格式来动态显示数据,可以用公式表示为:"报表 = 多样的格式 + 动态的数据". 在没有计算机以前,人们利用纸和笔来记录数据.       比如:民间常常说的豆腐帐,就是卖豆腐的每天将自己的卖出的豆腐记在一个本子上,然后每月都要汇总算算,这种情况下,报表数据和报表格式是紧密结合在一起的,都在同一个本子上.数据也只能有一种几乎只有记帐的人才能理解的表现形式,且这种形式难于修改.      VB版机房收费系统的报表采用的

机房收费系统:(三)SQLSever中自增长ID问题

       在本次机房收费系统中,数据库的用户增加过程中需要将每个增加的用户给一个自增长的序列号,这就考虑到数据库和VB的交互过程,甚至我们会遇到在写数据库程序的时候,经常会需要获取某个表中的最大序号数,查询资料找了几个方法,解决问题. 一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的.但在多线程情况下,就不行了. (1) getGeneratedKeys()方法:      程序片断:         Connection conn=...;

机房收费系统注册之实时错误

         机房收费系统,按着既定的脚步一步一步的往前走,窗体布局,实现代码,调代码,一不小心,写错一个单词,或者定义出了问题,都会导致程序无法正常运行下去,导致错误的原因有很多,但是导致同一个错误的原因却又不尽相同,无论怎样,自己还是在一个有一个的bug中找到闪光点,一点一点的向前进......,下面的这些错误时在注册的时候遇到的,做一个简单的总结.          实时错误'-2147217873(80040e2f)'                  NULL,本意是空的,元素只有