机房收费系统总结之6——DataGridView导出为Excel

        机房收费系统中有一个功能是把DataGridView导出为Excel。其实中难,正所谓“难者不会,会者不难”,下面就进行一下简要介绍。
        形象起见,先看图:


一、添加引用


二、代码实现(DataGridView控件在此处命名为:dgvInfo)

        '1.实例化工作簿  
        Dim MyExcel As New Microsoft.Office.Interop.Excel.Application()

        '2.添加表  
        MyExcel.Application.Workbooks.Add()

        '3.打开表  
        MyExcel.Visible = True

        '4.导出数据
        '   1)获取datagridview的标题行赋给Excel,Excel标题行第一列标识为1,datagridview则为0,所以为Cols-1  
        Dim Cols As Integer
        For Cols = 1 To dgvInfo.Columns.Count
            MyExcel.Cells(1, Cols) = dgvInfo.Columns(Cols - 1).HeaderText
        Next
        '   2)往excel表里添加数据()  
        Dim intRow As Integer
        For intRow = 0 To dgvInfo.RowCount - 1
            Dim intColumn As Integer
            For intColumn = 0 To dgvInfo.ColumnCount - 1
                If Me.dgvInfo(intColumn, intRow).Value Is System.DBNull.Value Then
                    MyExcel.Cells(intRow + 2, intColumn + 1) = ""    'Excel的第一行是标题,所以应从第二行开始,即:intRow+2 注意DataGridView的坐标是先列后行  
                Else
                    MyExcel.Cells(intRow + 2, intColumn + 1) = dgvInfo(intColumn, intRow).Value.ToString

                End If
            Next intColumn
        Next intRow


注意
        1.DBNull 类表示一个不存在的值。例如,在数据库的表中,某一行的某列中可能不包含任何数据。即,该列被视为根本不存在,而不只是没有值。一个表示不存在的列的 DBNull 对象。
        2.字符中以“0”开头的显示问题。看下图,其中程序中显示卡号的是“01”,而到了Excel中却变成了“0”,何故?在做第一遍机房收费系统时曾遇见过类似问题,请看博客《MSHFlexGrid中的数据导出为Excel》
                            程序中如下:

                             Excel中如下:
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值