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

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版机房收费系统,未完,待续......

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

时间: 2024-10-12 17:10:42

VB.NET版机房收费系统---导出Excel表格的相关文章

VB.Net版机房收费系统 ---数据库设计

数据库设计是根据用户需求设计数据库结构的过程,具体来说,数据库设计是对于给定的应用环境,在厝数据库理论的指导下,构造最优的数据库模式,在数据库管理系统上建立数据库及其应用系统,使之能有效地存储数据,满足用户的各种需求的过程.到底数据库该如何设计,古往今来,每个人都有每个人的想法,所以数据库设计并没有优劣之分,好坏之别,合适的数据库设计就是最好的. 走过自考--<数据库系统原理>,看过耿建玲老师的视频,对数据库设计有了一点了解,VB版的机房收费系统,直接用原来的脚本生成的数据库,当时对数据库设计

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

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

VB.NET版机房收费系统---SqlHelper

SqlHelper,最早接触这个词儿的时候,好像是13年的暑假,那个夏天来的比往年来的稍晚一些,呵呵,sqlhelper,翻译成中文就是数据库助手,帮手.百度百科这样对她进行阐述: SqlHelper是一个基于.NET Framework的数据库操作组件.组件中包含数据库操作方法.SqlHelper用于简化我们重复的去写那些数据库连接(SqlConnection),SqlCommand,SqlDataReader等等.SqlHelper 封装过后通常是只需要给方法传入一些参数如数据库连接字符串,

VB.NET版机房收费系统—数据库设计

之前第一遍机房收费的时候,用的数据库是别人的,认知也只能建立在别人的基础上,等自考中<数据库系统原理>这本书学完了之后,再去看以前的数据库,发现数据库真的还需要进一步的优化,下面是我设计数据库的一些见解,希望大家多提些意见. 数据库设计 E-R模型: 在观念模型设计阶段,一个系统都是建立在ER模型上的,设计好ER模型,很重要. 我设计的ER图: 系统中的实体:很简单,就是将系统中的名词都抽象出来,再具体了就是转换为数据库的逻辑设计时才要考虑的. 系统中的联系:在图中可以看得很清楚,这里我要重点

VB.NET版机房收费系统—DataGridView应用

事实上,先前刚刚開始敲机房的时候,刚用到DataGridView的时候,总显得力不从心,先要一下子就学会,看了非常多的资料,但是依照写的时候,自己有不知道从什么地方下手,于是,当自己用查询SQL语句,并用DataGridView显示出来,这个功能不能实现,但这里给大家写一下,假设有什么地方不好的会,请大家指出: 第一版: 窗口设计: 须要的控件: DateTimePicker.DataSet.DataGridView 把握的三步骤: 第一步:使用视图,创建出你要的产寻结果的视图(假设是一个表就能

vb.net版机房收费系统重构

机房收费系统重构版终于正式开工了! 前几天,刚刚看完三层的视频,在视频中详细的讲解了一个登录功能.天真的我,当时以为三层结构是那么的简单,所以我草草地做完总结之后,就很快就开始机房收费系统的重构了.可是谁想到,当我一打开编程软件,就让我"碰了一鼻子的灰"!首先是不知道vs 怎么用,其次就是看三层的时候,登录的实例使用C#写的,而这次我们需要用VB.NET写,所以对于其中的语法是知之甚少.虽然,前段时间我看了一遍台湾讲师--曹祖胜的<VB.NET 视频>,但是他讲的几乎都是一

VB.NET版机房收费系统---异常处理

异常处理,英文名为Exceptional Handling, 那时年少,还记得那年一起学习过的VB6.0的时候,常常使用ONError的错误语句.与传统VB6.0中的OnError语句相比.NET平台的异常处理机制更加灵活,而且使用更加方便.是代替日渐衰落的Error Code方法的新法,提供Error Code 所未能具体的优势.异常处理巧妙又不失完美的分离了接收和处理错误代码.这个功能理清了编程者的思绪,也帮助代码增强了可读性,方便了维护者的阅读和理解. 异常处理(又称为错误处理)功能提供了

VB.NET版机房收费系统---七仙女之系统登录

VB.NET第一版机房收费系统,告一段落,验收的时候,问题也是大大的存在,没有用上设计模式,什么触发器,存储过程,都没有用上,看看其她小伙伴的,七层实现登录?那是什么东东,相比较我的三层而言,多了两倍还加个一,通过查资料,看博客,憋了好几天,终于,憋出了一个七仙女---七层实现系统登录,七个女儿,各司其职,完美配合,衍生出众多美丽的故事. 从三层猛地跳到七层,有种穿越的感觉,说白了就是不会,又是想逃避的感觉,可是人生在世,有的事情不能随着自己的性子来,喜欢了就去做,不喜欢,就不做,没办法,就一直

vb.net版机房收费系统——教你七层架构(三)—外观模式

上次我们看到了D层是怎样运作的,现在,我简单演示一下我的外观和B层是如何和U层和D层打交道的. 首先我跟大家说的是我的外观是按照界面功能划分的,粒度有点小,大家在做的时候,记得外观有几个就行了,但是不能没有,U层不能直接调用B层,这样就会增加U层和B层的耦合: '************************** '文 件 名:UserInfo_BLL '命名空间:BLL '内 容: '功 能: '文件关系: '作 者:邱慕夏 '小 组:邱慕夏 '生成日期:2014-06-07 17:36:4