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

来源:互联网 发布:mac 英雄联盟 国服 编辑:程序博客网 时间:2024/05/18 00:26

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

        打开VB-工程-应用-勾选Microsoft  Excel 14.0 Objexts 2.6 Library

         

        代码如下:

         

<span style="font-size:18px;">Private Sub CmdExport_Click()      Dim j As Integer      Dim xlApp As Excel.Application      Dim xlBook As Excel.Workbook      Dim xlSheet As Excel.Worksheet      Set xlApp = CreateObject("Excel.Application")   '实例化对象xlApp          xlApp.Visible = True      Set xlBook = xlApp.Workbooks.Add      Set xlSheet = xlBook.Worksheets(1)      For i = 0 To myflexgrid.Rows - 1          For j = 0 To myflexgrid.Cols - 1             myflexgrid.Row = i             myflexgrid.Col = j             xlSheet.Cells(i + 1, j + 1) = Trim(myflexgrid.Text)          Next      Next  End Sub </span>
        第二版机房收费系统VB.NET版本,她又怎么样导出Exce表格nie,跟VB版的导出Excel表格的方法有哪些异曲同工之妙,又有着VB不具备的妙处呢?下面一一介绍:

          首先,我们需要引用

           

          还有一个细节问题,我们需要把AllowUserToAddRow这个属性改为False,后面详解True和False的区别:

           

           编程代码如下:

            

<span style="font-size:18px;">Public Function dirivExcel(ByVal dgv As DataGridView) As Boolean        Dim myExcel As New Microsoft.Office.Interop.Excel.Application  '建立Excel连接        myExcel.Application.Workbooks.Add(True)        myExcel.Visible = True        Dim i, j, k As Integer '定义变量        For k = 0 To dgv.ColumnCount - 1     '添加表头            myExcel.Cells(1, k + 1) = dgv.Columns(k).HeaderText        Next k        For i = 0 To dgv.RowCount - 1   '通过循环来添加控件中的数据到表格中            For j = 0 To dgv.ColumnCount - 1                '由于第一行是表头,所以添加数据时就从第二行开始添加                myExcel.Cells(i + 2, j + 1) = dgv(j, i).Value            Next        Next        Return True '添加完毕,返回true    End Function</span>
          现在我们来看一下运行结果:

          

          AllowUserToAddRow这个属性改为True的时候出现如下错误:

          

        因为单元格的value是空的,对一个控制进行.ToString()操作时,就会出现System.NullReferenceException异常。对此我将toString去掉,就不报错了,另外你可以对value先进行是否为空进行判断如果不为空,在进行Tostring()操作,上述是在修改代码的基础上来解决了这个问题,另外对于控件本身也有一个属性控制,是否自动添加空白行。VB.NET版机房收费系统,未完,待续......

62 1
原创粉丝点击