datagridview这一块的操作,对于我来说有些困难,先是从sql server查询数据,在datagridview显示,再到从datagridview删除字段,最后是现在的将datagridview的数据导出到Excel,这一个过程都显得有些困难,遇到困难也比较容易拖了又拖,但困难不解决,它还是在那里。现在就说说如何将datagridview的数据导出Excel。
将datagridview的数据导出Excel,也就是显示层的操作,没有涉及业务逻辑层和数据访问层,也算是比较容易的。在vb.net中实现这个,对于我来说,还算是挺陌生的。但是做完之后,觉得它和vb里的导出Excel的那一块是相近的。
一、添加引用
首先是添加引用,当我打开vb.net里引用的时候,觉得好熟悉,回想起敲vb版机房的时候,我们也添加了类似的引用,看下面的两幅图有没有觉两幅图其实也没有多大的区别。在引用里选择Microsoft Excel 14.0 object library。
<span style="font-family:KaiTi_GB2312;font-size:24px;"> Imports Excel = Microsoft.Office.Interop.Excel</span>
敲过这一块的同学,都知道,如果没有把datagridview的AllowUserToAddRows的属性改为false的话,代码运行的时候,就会出错。datagridview的AllowUserToAddRows属性是保证datagridview默认显示列头,而不是任意行。
三、代码部分
<span style="font-family:KaiTi_GB2312;font-size:24px;"> Private Sub Button2_Click(sender As Object,e As EventArgs) Handles Button2.Click </span>
<span style="font-family:KaiTi_GB2312;font-size:24px;"><span style="white-space:pre"> </span>Microsoft.Office.Interop.Excel.Application() '添加引用才可以使用 Dim myExcel As New Excel.Application() myExcel.Application.Workbooks.Add(True) myExcel.Visible = True Dim n As Integer For n = 0 To datagridview1.ColumnCount - 1 myExcel.Cells(1,n+ 1) = Me.datagridview1.Columns(n).HeaderText Next n '在Excel表里显示数据 Dim i As Integer For i = 0 To dgvMoney.RowCount - 1 Dim j As Integer For j = 0 To datagridview1.ColumnCount - 1 If Me.datagridview1(j,i).Value Is System.DBNull.Value Then MyExcel.Cells(i + 2,j + 1) = "" Else MyExcel.Cells(i + 2,j + 1) = datagridview1(j,i).Value.ToString End If Next j Next i End Sub</span>