机房收费系统中有一个功能是把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中如下:
分享到:
相关推荐
C#下成功登录后datagridview数据导出excel
C#DataGridView导出到Excel源代码设计
datagridview导出到Excel类 很实用 其中有三种方法
C# 从datagridview导出数据到excel表。注:没有使用npoi,直接导出excel数据。导出的数据不包含图片。
C#-WinForm(2种dataGridView导出Excel)批量导出,高效率,36列万行,15秒
C#中DATAGRIDVIEW快速导出到EXCEL(极速),直接引用DLL即可。
WinForm 的DataGridView导出Excel 标题和内容排列导出
DATAGRIDVIEW内的数据导出到EXCEL
DataGridView 添加图片 导出 excel 插入图片 添加图片 ,图片设置大小c# 包含源码
c# winform DataGridView导出数据到Excel中,可以导出当 前页和全部数据
C#实现DataGridView转换为Excel(包括图片和文本)
封装datagridview导出到excel,导出后列宽自动扩展,调用的时候只要把datagridview传进去就可以了。很方便。又很漂亮哦
在C#中 把DataGridView中的数据导出成Excel文件
C#+NOPI导出DataGridView数据至Excel,在NOPI库支持的基础上,具体实现在代码中。
用VS2012写的DataGridView数据通过NPOI导出到Excel,共同进步。
VB.NET2005 DATAGRIDVIEW导出EXCEL含格式控件代码
C#dataGridview导出excel的三种方法 ,附带Microsoft.Office.Interop.Excel.dll文件
从别处下载的,能用。这里只是一个dll文件,import_excel
WinForm中DataGridView导出成Excel
将DATAGRIDVIEW内容导出到EXCEL