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

打开VB-project-应用-勾选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表格的更多相关文章

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

    异常处理,英文名为Exceptional Handling, 那时年少,还记得那年一起学习过的VB6.0的时候,常常使用ONError的错误语句.与传统VB6.0中的OnError语句相比.NET平台 ...

  2. VB.net版机房收费系统——结账功能实现(调错与优化)

    调错部分 上一篇博客<VB.net版机房收费系统--结账功能实现(代码部分>说的是结账功能的实现,亮出了代码.是在为这篇博客做铺垫.尽管结账功能代码是借鉴的巨人的博客.可是自己比着葫芦画瓢 ...

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

    报表,即报告情况的表格,简单的说:报表就是用表格.图表等格式来动态显示数据,可以用公式表示为:"报表 = 多样的格式 + 动态的数据". 在没有计算机以前,人们利用纸和笔来记录数据 ...

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

    VB.NET第一版机房收费系统,告一段落,验收的时候.问题也是大大的存在,没实用上设计模式,什么触发器.存储过程,都没实用上.看看其她小伙伴的,七层实现登录?那是什么东东,相比較我的三层而言,多了两倍 ...

  5. VB.NET版机房收费系统---外观层如何写

    外观设计模式,<大话设计模式>第103页详细讲解,不记得这块知识的小伙伴可以翻阅翻阅,看过设计模式,敲过书上的例子,只是学习的第一步,接着,如果在我们的项目中灵活应用,把设计模式用出花儿来 ...

  6. VB.NET版机房收费系统---组合查询

    查询的意思就是查找,寻找,指在某一个或几个地方找出自己所要的信息,假如我想搜索一下我自己写的博客,名字叫做初雪之恋,我在百度的搜索框中输入丁国华三个字,会有怎样的惊喜等着我? 啊哦,这个信息并不是我想 ...

  7. VB.NET版机房收费系统---外观层怎样写

    外观设计模式.<大话设计模式>第103页具体解说,不记得这块知识的小伙伴能够翻阅翻阅,看过设计模式,敲过书上的样例,仅仅是学习的第一步,接着,假设在我们的项目中灵活应用,把设计模式用出花儿 ...

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

    之前第一遍机房收费的时候,用的数据库是别人的.认知也仅仅能建立在别人的基础上,等自考中<数据库系统原理>这本书学完了之后,再去看曾经的数据库,发现数据库真的还须要进一步的优化.以下是我设计 ...

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

    事实上,先前刚刚開始敲机房的时候,刚用到DataGridView的时候,总显得力不从心,先要一下子就学会,看了非常多的资料,但是依照写的时候,自己有不知道从什么地方下手,于是,当自己用查询SQL语句, ...

随机推荐

  1. mysql 结果集合切换

    结果集A: 转换成为结果集B: mysql中实现例如以下: SELECT a.biz_date, CASE WHEN a.`event` = 'downClick' THEN a.uv END AS ...

  2. Linux内核驱动将多个C文件编译成一个ko文件的方法——每一个C文件中都有module_init与module_exit

    以两个C文件为例: 将本该被分别编译成adc_device.ko和adc_driver.ko的adc_device.c.adc_driver.c编译成一个ko文件! 採用方法: 第一步.改动C文件 1 ...

  3. hdu 4081 Qin Shi Huang's National Road System (次小生成树的变形)

    题目:Qin Shi Huang's National Road System Qin Shi Huang's National Road System Time Limit: 2000/1000 M ...

  4. JDBC操作数据库的学习(1)

    单单对数据库的操作,比如说MySQL,我们可以在命令行窗口中执行,但是一般是应用程序要操作数据库,因此我们应该在程序中的代码上体现对数据库的操作,那么使用程序应用如何操作数据库呢?那就要使用到数据库的 ...

  5. fedora 搭建pptp vpn server

    1 首先去sourceforge上下载pptpd的源码 http://sourceforge.net/projects/poptop/files/?source=navbar 2 对源码进行编译 ./ ...

  6. express for node 路由route几种实现方式的思考

    1.路由实现方式和顺序 express框架创建的模板app,js中默认代码 var express = require('express'); var routes = require('./rout ...

  7. TDD测试驱动的javascript开发(3) ------ javascript的继承

    说起面向对象,人们就会想到继承,常见的继承分为2种:接口继承和实现继承.接口继承只继承方法签名,实现继承则继承实际的方法. 由于函数没有签名,在ECMAScript中无法实现接口继承,只支持实现继承. ...

  8. iphone缩小uIImage图片

    UIImage的缩小 有时候,项目中,要用到上传图片,从图片库里取出的图片有的太大了,而要上传的时候,会很费时间,而且也没必要太大,所以就把图片综缩小一下,再传! #pragma UIImagePic ...

  9. unity3d ngui-TweenRotation-TweenPosition-TweenScale

    using UnityEngine; using System.Collections; public class TweenFlipCARDS : MonoBehaviour { private f ...

  10. 重复数据删除(De-duplication)技术研究(SourceForge上发布dedup util)

    dedup util是一款开源的轻量级文件打包工具,它基于块级的重复数据删除技术,可以有效缩减数据容量,节省用户存储空间.目前已经在Sourceforge上创建项目,并且源码正在不断更新中.该工具生成 ...