首先,这个问题在网上有很多答案,也有很多解决的方法。其次,很多人写过类似的博客 。我的这篇博客,主要是写给那些刚刚接触或接触不久.NET并使用其做程序的人,更是写个自己,记录一下方法,方便以后使用。

在窗体中添加一个DataGridView控件,DatagridView获得数据: DataGridView1.DataSource = crList(泛型)或DataGridView1.DataSource=DataSet.Table(0)。{注意:通过查询数据库,将查询到的数据放入crList或Dataset中,然后赋值给DataGridView)

若想导出数据到Excel表,需要添加引用(项目-添加引用-Microsoft.Office.Interop.Excel).

剩下的就是代码了。下面是我的代码,仅供参考。(把导出Excel表做成了一个类,这样整个程序都可以直接调用这个类,实现导出数据到Excel表)

<span style="font-size:18px;">       '打开Excel的应用程序
Dim ExcelADD As New Excel.Application() '添加一个工作本
Dim ExcelWordBook As Excel.Workbook = <span style="font-size:18px;">ExcelADD</span>.Workbooks.Add() '添加一个表
Dim ExcelWorkSheet As Excel.Worksheet = <span style="font-size:18px;">ExcelWordBook</span>.Sheets("sheet1") '显示Excel
<span style="font-size:18px;">ExcelADD</span>.Visible = True '用于将DataGridView中的表赋值到Excel中的表中
Dim i As Integer
Dim j As Integer '将DataGridView中的字段名赋值给Excel表中的第一行
Dim Cols As Integer
For Cols = 1 To x.Columns.Count
xlWorkSheet.Cells(1, Cols) = x.Columns(Cols - 1).HeaderText Next '将DataGridView表格中的内容导入到Excel表中
For i = 0 To x.RowCount - 1
'DataGrideView中的表头行不作为行数来计算
For j = 0 To x.ColumnCount - 1
'Excel的第一行是标题,所以应从第二行开始,i+2 注意DataGridView的坐标是先列后行
xlWorkSheet.Cells(i + 2, j + 1) = x(j, i).Value.ToString() Next
Next </span>

注意:DataGridView的属性里有一个AllowUsersToAddRows属性,要设置成False,否则For i = 0 To x.RowCount - 1要改写成For i = 0 To x.RowCount - 2,同时,系统也容易出现错误,不过,还是可以尝试一下。

小结:在做这一块的时候,出现了很多问题,尤其是在用嵌套循环时,如果设置不对,常常出现导出时丢失行,数据超出范围,或者不按你想的方式导出,总之 我出现了各种问题,通过查询各种信息,学长学姐的博客,一个个解决掉了,解决后才发现,问题都是非常小的问题,却又是非常不好找的问题,非常小的细节,而且是那些你认为不会出错的地方。做事要细心,做程序更要细心,这篇博客,即使写给自己,也写给大家,一句话:“做程序必须细心在细心。”

版权声明:本文为博主原创文章,未经博主允许不得转载。

.Net中DataGridview数据如何导出到excel表的更多相关文章

  1. 把数据库里面的stu表中的数据,导出到excel中

    # 2.写代码实现,把我的数据库里面的stu表中的数据,导出到excel中 #编号 名字 性别 # 需求分析:# 1.连接好数据库,写好SQL,查到数据 [[1,'name1','男'],[1,'na ...

  2. 【SqlServer】在SqlServer中把数据导入导出为Excel文件

    这里笔者介绍利用SqlServer数据库操作EXECEL文件. 1.将Excel表中的数据导入为SqlServer数据库 把Excel表中的数据导入为SqlServer数据库中的数据. 新建一个Exc ...

  3. 数据可视化之powerBI基础(十一)Power BI中的数据如何导出到Excel中?

    https://zhuanlan.zhihu.com/p/64415543 把Excel中数据加载到PowerBI中我们都已经熟悉了,但是怎么把在PowerBI中处理好的数据导出到Excel中呢?毕竟 ...

  4. NPOI从数据库中调取数据直接导出到EXCEL中

    关于NPOI NPOI是POI项目的.NET版本,是由@Tony Qu(http://tonyqus.cnblogs.com/)等大侠基于POI开发的,可以从http://npoi.codeplex. ...

  5. vue项目中的elementUI的table组件导出成excel表

    1.安装依赖:npm install --save xlsx file-saver 2.在放置需要导出功能的组件中引入 import FileSaver from 'file-saver' impor ...

  6. mysql结构相同的三张表查询一条记录\将一张表中的数据插入另外一张表

    将一张表中的数据插入另外一张表 1.两张表结构相同 insert into 表1名称 select * from 表2名称 2.两张结构不相同的表 insert into 表1名称(列名1,列名2,列 ...

  7. sql将一个表中的数据插入到另一个表中

    sql将一个表中的数据插入到另一个表中 列名不一定要相同,只要你在HH中列出要插入列的列表跟select   from   mm表中的选择的列的列表一一对应就可以了,当然两边的数据类型应该是兼容的.  ...

  8. hivesql-一个表中的数据不在另一个表中

    如何最有效的判断 一个表中的数据不在另一个表中 两个方法一个是join 另一个是 exist 方法

  9. SQL语句的使用,SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT INTO - 向数据库表中插入数据

    SQL DML 和 DDL 可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL). SQL (结构化查询语言)是用于执行查询的语法. 但是 SQL 语言也包含用于更新. ...

随机推荐

  1. bzoj 1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列——map+hash+转换

    Description N(1<=N<=100000)头牛,一共K(1<=K<=30)种特色, 每头牛有多种特色,用二进制01表示它的特色ID.比如特色ID为13(1101), ...

  2. [BZOJ1177][BZOJ1178][BZOJ1179]APIO2009解题报告

    抱着好奇心态去开始做APIO的往年试题感受一下难度 Oil Description 采油区域 Siruseri政府决定将石油资源丰富的Navalur省的土地拍卖给私人承包商以建立油井.被拍卖的整块土地 ...

  3. ajax post请求json数据在spring-controller解析

    1.前端post请求数据: userInfo=[{"id":"5","uname":"小李","phone&q ...

  4. 工具_HBuilder使用快捷方式

    HBuilder常用快捷键大概共9类([4 13 3]文件.编辑.插入:[4 9 8]选择.跳转.查找:[1 1 6]运行.工具.视图) 1.文件(4) 新建 Ctrl + N 关闭 Ctrl + F ...

  5. 初识费用流 模板(spfa+slf优化) 餐巾计划问题

    今天学习了最小费用最大流,是网络流算法之一.可以对于一个每条边有一个容量和一个费用(即每单位流的消耗)的图指定一个源点和汇点,求在从源点到汇点的流量最大的前提下的最小费用. 这里讲一种最基础也是最好掌 ...

  6. Linux从入门到放弃

    Ch.0 几点Linux常识 Linux严格区分大小写,不像windows中命令是不区分大小写的 Linux中所有内容以文件形式保存,包括硬件 Linux不靠扩展名区分文件类型,所有扩展名只是为了方便 ...

  7. linux编程之信号

    信号(signal)机制是UNIX系统中最为古老的进程之间的通信机制,它用在一个或多个进程之间传递异步信号,信号可以由各种异步事件产生,如: 键盘中断等等,在Linux 的shell 中,也可以使用信 ...

  8. 【ZJOI2016】大森林

    这题理论上可以用ETT,但是用LCT建虚点可以解决这个问题. 对于最晚的操作1建立一个虚点,然后把操作0挂上去. #include<bits/stdc++.h> ; using names ...

  9. 【bzoj4765】普通计算姬

    一道奇奇怪怪的数据结构题? 把树线性化,然后分块维护吧. 为了加速,求和用树状数组维护每个块的值. #include<bits/stdc++.h> #define N 100010 #de ...

  10. 使用 Visual Studio 部署 .NET Core 应用 ——.Net Core 部署到SUSE Linux Enterprise Server 12 SP2 64 位(GNOME 版本3.20.2)

    SUSE Linux安装 apache 命令:sudo zypper in apache 设置apache 服务可用 命令:sudo systemctl enable apache2.service启 ...