DataGridView导出数据到Excel及单元格格式的修改
来源:互联网 发布:c a星算法 编辑:程序博客网 时间:2024/05/18 01:56
在软件开发过程中,时常会遇到把一些数据信息从DataGridView中导出到Excel表格中的情况,如果写的多了就会发现挺简单的,我们不妨来写一写,留作备用,毕竟有时候Ctrl+C和Ctrl+V还是比较方便的。
思路很简单,写一个Module,然后调用:
Module代码如下:
<span style="font-family:Times New Roman;font-size:18px;">'**********************************************' 文 件 名:LeadToExcel' 命名空间:UI' 功 能:将DataGridView中的数据导出到Excel表中 ' 作 者:郝贵宝' 生成日期:2014/8/23 10:55:54' 版 本 号:V1.0.0.0' 修改日志:' 版权说明:'***********************************************Imports Microsoft.Office.Interop '添加对Office的引用Module LeadToExcel Function LeadToExcel(ByVal dgv As DataGridView) As Boolean '导出为Excel函数 '建立Excel连接 Dim myExcel As New Excel.Application() myExcel.Application.Workbooks.Add(True) myExcel.Visible = True '定义循环变量,行,列变量 Dim intRow As Integer Dim intColumn As Integer Dim intTitle As Integer '添加表头 For intTitle = 0 To dgv.ColumnCount - 1 myExcel.Cells(1, intTitle + 1) = dgv.Columns(intTitle).HeaderText Next intTitle '通过循环来添加控件中的数据到表格中 For intRow = 0 To dgv.RowCount - 1 For intColumn = 0 To dgv.ColumnCount - 1 '由于第一行是表头,所以添加数据时: 'Excel中从第二行,第一列(2,1)开始赋值, 'DataGridView从第一行,第一列(0,0)开始赋值(index 从0,0开始) myExcel.Cells(intRow + 2, intColumn + 1) = dgv(intColumn, intRow).Value.ToString Next intColumn Next intRow Return True '添加完毕,返回true End FunctionEnd Module</span>
点击button调用
<span style="font-family:Times New Roman;font-size:18px;"> Private Sub btnLeadExcel_Click(sender As Object, e As EventArgs) Handles btnLeadExcel.Click Call LeadToExcel.LeadToExcel(DataGridView1) End Sub</span>
O(∩_∩)O~大致上就是这样了,但是仍有一些细节需要注意
问题缘由:如果你在DataGridView中显示的有数字,且数字以0开头,则导出Excel后0消失了。(比如某卡号为001,导出后显示为1)
如果仔细想想就会明白,Excel中数字的格式默认为常规(常规单元格格式不包含任何特定的数字格式),所以数字前面的 0 会被去掉。
解决方案:在LeadToExcel模块中,赋值时在数据前加上" ’ " 变为文本格式即可,如下:
<span style="font-family:Times New Roman;font-size:18px;"> '通过循环来添加控件中的数据到表格中 For intRow = 0 To dgv.RowCount - 1 For intColumn = 0 To dgv.ColumnCount - 1 '由于第一行是表头,所以添加数据时: 'Excel中从第二行,第一列(2,1)开始赋值, 'DataGridView从第一行,第一列(0,0)开始赋值(index 从0,0开始) myExcel.Cells(intRow + 2, intColumn + 1) = "'" + dgv(intColumn, intRow).Value.ToString Next intColumn Next intRow</span>
解决方案再思考:按照上述方法,会把所有的单元格都变成了文本格式,并不一定满足所有情况,于是,需要找到数据所在列了,只在这一列内容的前面加“ ’ ” 就行了。
举一反三:日期,时间,货币的格式转换都可以按照这个思路来解决。
再领悟:如果当初在设计数据库或写实体时就能考虑到这些情况,而做出适当改变,或许后面的这些问题就不会产生了。(ps:还会遇到其他新的问题,呵呵,这些都需要日后不断的积累经验吧)
5 0
- DataGridView导出数据到Excel及单元格格式的修改
- Java修改Excel单元格的数据及格式
- DataGridView导出数据到Excel
- datagridview数据导出到excel
- DataGridView数据导出到Excel
- DataGridView导出数据到Excel
- 《Java开发有一说一》——Java修改Excel单元格的数据及格式
- asp 导出excel数据 fso 单元格格式
- 把WinForm的DataGridView的数据导出到Excel
- datagridview数据导出到Excel(数据量小的情况)
- DataGridView导出数据到Excel的三种方式
- 将DataGridView中的数据导出到Excel
- C# DataGridView 数据导出到Excel
- datagridview中的数据导出到excel过程
- C#datagridview导出数据到excel
- DataGridView中数据导出到Excel里
- datagridview 数据导出到excel 里面
- 导出DataGridView中数据到EXCEL中
- 微信公众平台开发(3)-回复消息
- Coursera台大机器学习课程笔记3 – 机器学习的可能性
- 在python中嵌入c/c++
- Django request和response对象
- pw_expire_check.sh linux用户密码过期检测脚本
- DataGridView导出数据到Excel及单元格格式的修改
- 关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系
- 寻找和为定值的多个数 【微软面试100题 第二十一题】
- 乐村淘电商平台 农村电商新模式 全国第一家村镇O2O服务平台
- thread join demo
- MySQL:日期函数、时间函数总结
- jsp标签库学习(二)tag标签
- 二叉树分层遍历(含之字形打印)
- Android进程的内存管理分析