winform导出dataviewgrid数据为excel的方法
作者:shichen2014 发布时间:2023-09-25 15:01:38
本文实例讲述了winform导出dataviewgrid数据为excel的方法。分享给大家供大家参考。具体实现方法如下:
#region 导出dataViewGrid视图中的数据为xls格式
private void btnExportList_Click(object sender, EventArgs e)
{
string fname = string.Empty;
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "表格文件|*.xls";
sfd.DefaultExt = "xls";
if (sfd.ShowDialog() == DialogResult.OK)
{
fname = sfd.FileName;
}
else
{
return;
}
//导出当前dataGridView中的所有数据到xls文件
//1.引入库文件,新建lib文件夹,复制相关文件
//2.在项目中添加对这几个dll的引用
//3.在内存中建立 excel表文件
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.CreateSheet("第一页");
//创建标题头
HSSFRow title = sheet.CreateRow(0);
title.CreateCell(0).SetCellValue("编号");
title.CreateCell(1).SetCellValue("姓名");
title.CreateCell(2).SetCellValue("性别");
title.CreateCell(3).SetCellValue("年龄");
title.CreateCell(4).SetCellValue("地址");
title.CreateCell(5).SetCellValue("电话");
title.CreateCell(6).SetCellValue("生日");
for (int rowindex = 0; rowindex < dgvStudens.RowCount; rowindex++)
{
//创建第一行
HSSFRow row = sheet.CreateRow(rowindex + 1);
for (int colindex = 0; colindex < dgvStudens.Rows[rowindex].Cells.Count; colindex++)
{
row.CreateCell(colindex).SetCellValue((dgvStudens.Rows[rowindex].Cells[colindex].Value == null) ? null : dgvStudens.Rows[rowindex].Cells[colindex].Value.ToString());
}
////创建第一行的第一列
//HSSFCell cell = row.CreateCell(0);
//cell.SetCellType(3);
//cell.SetCellValue(dgvStudens.Rows[rowindex].Cells[0].Value.ToString());
////第一行第2列
//row.CreateCell(1).SetCellValue(dgvStudens.Rows[rowindex].Cells[1].Value.ToString());
////第一行第3列
//row.CreateCell(2).SetCellValue(dgvStudens.Rows[rowindex].Cells[2].Value.ToString());
////第一行第4列,age,可能会为空
//// row.CreateCell(3).SetCellValue(dgvStudens.Rows[0].Cells[3].Value.ToString());
//row.CreateCell(3).SetCellValue((dgvStudens.Rows[rowindex].Cells[3].Value == null) ? null : dgvStudens.Rows[rowindex].Cells[3].Value.ToString());
}
using (FileStream fs = new FileStream(fname, FileMode.Create))
{
workbook.Write(fs);
}
;
}
#endregion
希望本文所述对大家的C#程序设计有所帮助。


猜你喜欢
- ArrayList和LinkedList都实现了List接口,有以下的不同点:1、ArrayList是基于索引的数据接口,它的底层是数组。它
- 前端使用的是vue+elementui,这款系统只适合学习巩固SpringBoot+VUE,后面还要在这上面加校园公告、校园零食等功能,后期
- 前言1.因为涉及到对象锁,Wait、Notify一定要在synchronized里面进行使用。2.Wait必须暂定当前正在执行的线程,并释放
- 一、背景在上一篇文章中,我们使用Seata整合了SpringBoot,在这篇文章中我们使用Seata整合SpringCloud。同时有了上一
- 1. 概述官方JavaDocsApi: javax.swing.JButtonJButton,按钮。JButton 常用构造方法:// 创建
- 一、分布式锁使用场景:代码部署在多台服务器上,即分布式部署。多个进程同步访问一个共享资源。二、需要的技术:数据库:mongojava:mon
- 前言缓存主要是为了提高数据的读取速度。因为服务器和应用客户端之间存在着流量的瓶颈,所以读取大容量数据时,使用缓存来直接为客户端服务,可以减少
- 这篇文章主要介绍了如何使用Spring工具类动态匹配url,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- Java Hutool 包工具类推荐 ExcelUtil包引入hutool包版本号可根据实际情况更换<dependency> &
- 用c#中创建一个windows服务非常简单,与windows服务相关的类都在System.ServiceProcess命名空间下。每个服务都
- C# Linq延迟查询在定义linq查询表达式时,查询是不会执行,查询会在迭代数据项时运行。它使用yield return 语句返回谓词为t
- 本文实例讲述了Java算法之最长公共子序列问题(LCS)。分享给大家供大家参考,具体如下:问题描述:一个给定序列的子序列是在该序列中删去若干
- 一、简介项目开发中存在系统之间互调问题,又不想用dubbo,这里提供几种springboot方案:1、使用Feign进行消费(推荐)2、使用
- yml 文件规则yml文件的好处,天然的树状结构,一目了然,实质上跟properties是差不多的。不支持tab缩进可以使用 "-
- 利用apache ftp工具实现文件的上传下载和删除,具体如下1、下载相应的jar包 com
- 为了解决用一个命令(宏)给方法,类,js方法添加注释,经过几天的研究.终于得到结果了。实现的效果如下:给Java中的method添加方法:/
- 通常在使用service更新应用时最常出现的问题就是Notification进度的更新问题、service在什么时间关闭以及需要我们自己在S
- 这篇文章主要介绍了java private关键字用法实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- 设置流程百度查阅了几个资料感觉没啥用,经过自己一番试验,总结了简单的方法,具体做法是1.从工具栏拖出一个按钮2.在vs外部使用编辑进入到画图
- 本章是后续学习的基石,只有充分理解了分布式系统的概念和面临的问题,以及ZooKeeper内部的概念,才能懂得ZooKeeper是如何对分布式