DataGridView导出Excel

       把DataGridView中的信息导出到Excel是《机房收费系统》的功能之一,这里主要是VS与Office的交互,方法有n多种(从这里就可以看出这个功能难不到哪里去了),现在就介绍一下我使用的一种吧,首先需要添加并引用命名空间。

1.添加:右击窗体所在的项目名即U层的项目名——添加——引用——出现下面图片,搜索Excel,在结果中选中符合版本的Microsoft.Interop.Excel

2.引用命名空间:Imports Microsoft.Office.Interop

      由于多次用到了导出Excel的功能,所以把它单独封装到了一个函数ExportToExcel中并放在模块里

    Public Function ExportToExcel(ByVal dtg As DataGridView) As Boolean
        'DataGridView中没有信息,退出该过程
        If dtg.Rows.Count = 0 Then
            MsgBox("没有信息可导出!")
            Return False
            Exit Function
        End If

        '定义一个Excel程序、工作簿、工作表
        Dim xlApp As New Excel.Application()
        Dim xlBook As Excel.Workbook = xlApp.Workbooks.Add()
        Dim xlSheet As Excel.Worksheet = xlBook.Worksheets(1)

        '定义Excel表格的行列索引
        Dim rowIndex As Integer = 1
        Dim colIndex As Integer = 0

        '给Excel添加表头
        For col As Integer = 0 To dtg.Columns.Count - 1
            colIndex = colIndex + 1
            xlSheet.Cells(1, colIndex) = dtg.Columns(col).HeaderText
        Next

        '将DataGridView中的信息添加到Excel中
        For row As Integer = 0 To dtg.RowCount - 1
            rowIndex = rowIndex + 1
            colIndex = 0
            For col As Integer = 0 To dtg.Columns.Count - 1
                colIndex = colIndex + 1
                xlSheet.Cells(rowIndex, colIndex) = dtg(col, row).Value.ToString()
            Next
        Next

        xlApp.Visible = True                                    '显示Excel表

        Return True
    End Function

窗体调用代码

    Private Sub btnExcel_Click(sender As Object, e As EventArgs) Handles btnExcel.Click
        Call GlobalData.ExportToExcel(dtgChargeCash)
    End Sub

以上就是U层的代码,B、D两层的与其它窗体的类似。这里需要提示一点的是

dtg(col,row)先列后行,行列从0开始,表头不计在行数内。

Excel(row,col)先行后列,行列从1开始,表头记在行数内。



 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 18
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值