欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-21 19:21:58
datagridview,翻译成中文的意思是数据表格显示,使用datagridview控件,可以显示和编辑来自不同类型的数据源的表格,将数...

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

打开vb-工程-应用-勾选microsoft excel 14.0 objexts 2.6 library

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

代码如下:

喎? f/ware/vc/"="" target="_blank" class="keylink">vcd4kphbyzsbjbgfzcz0="brush:java;">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 第二版机房收费系统vb.net版本,她又怎么样导出exce表格nie,跟vb版的导出excel表格的方法有哪些异曲同工之妙,又有着vb不具备的妙处呢?下面一一介绍:

首先,我们需要引用

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

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

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

编程代码如下:

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
现在我们来看一下运行结果:

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

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

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

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

喎?>