首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

【机房系统常识小结点系列】之DataGridView控件导出为Excel

2013-09-18 
【机房系统知识小结点系列】之DataGridView控件导出为Excel在机房收费系统中,DataGridView控件导出为Excel的

【机房系统知识小结点系列】之DataGridView控件导出为Excel

    在机房收费系统中,DataGridView控件导出为Excel的功能经常出现,因此我把重复出现的一个功能统一放在了一个专属的“Configuration.vb”配置类中。

     对于DataGridView控件导出为Excel的博文已经很多,精辟一些的代码如下:

Imports Microsoft.Office.Interop '添加引用ExcelImports System.Windows.Forms.DataGridViewPublic Class Configuration '配置    Public Sub ToExcel(ByVal enDgvw As DataGridView) '由DataGridView导出为Excel        Dim myExcel As New Excel.Application '添加工作簿        myExcel.Application.Workbooks.Add() '添加表        myExcel.Visible = True '打开表        Dim cols As Integer        For cols = 1 To enDgvw.ColumnCount '获取gdvwRechargeLog标题行赋值给Excel            myExcel.Cells(1, cols) = enDgvw.Columns(cols - 1).HeaderText 'gdvwRechargeLog从第一行的第0位开始,至cols-1终止        Next        Dim i As Integer        Dim j As Integer        For i = 0 To enDgvw.RowCount - 1 '内循环:列循            For j = 0 To enDgvw.ColumnCount - 1 '外循环,行循环                If enDgvw(j, i) Is System.DBNull.Value Then '(列,行)DBNull为不存在的值,当数据库表中某一个字段不包含任何数据时,则显示                    myExcel.Cells(i + 2, j + 1) = ""                Else                    myExcel.Cells(i + 2, j + 1) = enDgvw(j, i).Value 'DataGridView(列,行),Excel(行,列)                End If            Next        Next    End Sub


    在这里我强调的一点是,这句话你真的理解了吗?

        myExcel.Cells(i+ 2, j + 1) = gdvwRechargeLog(j, i).Value

    答案解析DataGridView表示单元格的位置为(j,i), j:表示单元格所在列,i:表示单元格所在行。这与我们平常认知的表示单元格的表示方式不同。

   总结:囫囵吞枣固然是一种学习的方式!但是,知其然还要知其所以然,才能对知识了然于胸。否则,也只是提笔忘字,对学习的只是有种不踏实的感觉。


热点排行