1. 其实想在datagridview中显示excel表格中的数据跟读取数据库中的数据没什么差别,只不过是创建数据库连接的时候连接字段稍有差别。
private void btnShow_Click(object sender, EventArgs e){OpenFileDialog fd = new OpenFileDialog();//首先根据打开文件对话框,选择excel表格ofd.Filter = "表格|*.xls";//打开文件对话框筛选器string strPath;//文件完整的路径名if (ofd.ShowDialog() == DialogResult.OK){try{strPath = ofd.FileName;string strCon = "provider=microsoft.jet.oledb.4.0;data source=" + strPath + ";extended properties=excel 8.0";//关键是红色区域OleDbConnection Con = new OleDbConnection(strCon);//建立连接string strSql = "select * from [Sheet1$]";//表名的写法也应注意不同,对应的excel表为sheet1,在这里要在其后加美元符号$,并用中括号OleDbCommand Cmd = new OleDbCommand(strSql, Con);//建立要执行的命令OleDbDataAdapter da = new OleDbDataAdapter(Cmd);//建立数据适配器DataSet ds = new DataSet();//新建数据集da.Fill(ds, "shyman");//把数据适配器中的数据读到数据集中的一个表中(此处表名为shyman,可以任取表名)//指定datagridview1的数据源为数据集ds的第一张表(也就是shyman表),也可以写ds.Table["shyman"]
dataGridView1.DataSource = ds.Tables[0];}catch (Exception ex){MessageBox.Show(ex.Message);//捕捉异常
                }}}

运行结果如下:

2.导出DataGridView中的数据到Excel的方法:

public void ToExcel(DataGridView dataGridView1){try{//没有数据的话就不往下执行  if (dataGridView1.Rows.Count == 0)return;//实例化一个Excel.Application对象  Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();//让后台执行设置为不可见,为true的话会看到打开一个Excel,然后数据在往里写  excel.Visible = true;//新增加一个工作簿,Workbook是直接保存,不会弹出保存对话框,加上Application会弹出保存对话框,值为false会报错  excel.Application.Workbooks.Add(true);//生成Excel中列头名称  for (int i = 0; i < dataGridView1.Columns.Count; i++){if (this.dataGridView1.Columns[i].Visible==true){excel.Cells[1, i + 1] = dataGridView1.Columns[i].HeaderText;}}//把DataGridView当前页的数据保存在Excel中  for (int i = 0; i < dataGridView1.Rows.Count - 1; i++){System.Windows.Forms.Application.DoEvents();for (int j = 0; j < dataGridView1.Columns.Count; j++){if (this.dataGridView1.Columns[j].Visible==true){if (dataGridView1[j, i].ValueType == typeof(string)){excel.Cells[i + 2, j + 1] = "'" + dataGridView1[j, i].Value.ToString();}else{excel.Cells[i + 2, j + 1] = dataGridView1[j, i].Value.ToString();}}}}//设置禁止弹出保存和覆盖的询问提示框  excel.DisplayAlerts = false;excel.AlertBeforeOverwriting = false;//保存工作簿  excel.Application.Workbooks.Add(true).Save();//保存excel文件  excel.Save("D:" + "\\KKHMD.xls");//确保Excel进程关闭
                excel.Quit();excel = null;GC.Collect();//如果不使用这条语句会导致excel进程无法正常退出,使用后正常退出MessageBox.Show(this,"文件已经成功导出!","信息提示");}catch (Exception ex){MessageBox.Show(ex.Message, "错误提示");}}

转载于:https://www.cnblogs.com/kongxiaoshuang/p/6062368.html

C#读取Excel表格数据到DataGridView中和导出DataGridView中的数据到Excel相关推荐

  1. Excel表格导入数据库进行判断是否有相同的数据

    Excel表格导入数据库进行判断是否有相同的数据 这个问题困惑了我1天的时间,终于解决了这个问题.这个问题说复杂也不复杂,说简单也不简单. 我先说一下我的业务需求. 我们大家都知道,数据库对应的实体类 ...

  2. matlab中将数据导出到Excel表格、.txt、.xml等文件中

    本人应用例子 导出效果:第一行为提示,所以在设置表格行数时需要+1,如上图 matlab官网例子 load patients.mat T = table(LastName,Age,Weight,Smo ...

  3. python excel模板 生成excel表格_python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图...

    python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图 #coding=utf-8 from openpyxl importload_workbookfro ...

  4. 制作的excel表格如何放到微信公众平台文章中?

    Excel表格,大家都很熟悉,生活中也很常见,它是收集和整理数据的好帮手! 那我们作为公众号的运营者,有时候也会需要再自己的公众号推文内容中放入excel表格,我们该如何做呢? 就"制作的e ...

  5. 把Excel表格通过MySql Workbench导入数据库表中的使用总结

    把Excel表格通过MySql Workbench导入数据库表中的使用总结 今天接到一个任务,把excel表中的数据导入到mysql数据库中,通过半个多小时的鼓捣,基本上摸清了里面的门道. 首先,准备 ...

  6. word文档中找不到服务器,【在WORD文件中插入excel表格,编辑保存后重新打开word文件并双击excel时提示“找不到服务器应用程序、源文件】excel整个表格不见了...

    为什么PPT插入EXCEL表格时显示无法找到服务器应用程序 这是由于excel或者ppt只能兼容.低版本的ppt和excel是无法打版本excel插入的表格的. 解决如下: 1.新建一个文本,将后缀名 ...

  7. 《项目经验》--简单三层使用DataTable向数据库表批量导入数据---向SqlServer多张张表中导入数据

    前面已经介绍过如何向数据库的一张表中批量导入数据,详情见博客<项目经验---简单三层使用DataTable向数据库表批量导入数据---向SqlServer一张表中导入数据>:本文主要介绍如 ...

  8. 【Oracle】Oracle 删除一条数据,同时删除多表中关联数据

    1.从数据表t1中把那些id值在数据表t2里有匹配的记录全删除掉 DELETE t1 from t1,t2 WHERE t1.id=t2.id 或DELETE from t1 USING t1,t2 ...

  9. 【数据库基础知识二】数据库DataBase(简称DB),数据库基本概念、DDL:数据定义语言,用来操作数据库对象、DML:数据操作语言,用来操作表中的数据

    14天阅读挑战赛 目录 数据库基本概念 数据库DataBase(简称DB) 数据库管理系统Database management system(简称DBMS) 如何操作DBMS? 连接数据库的方式: ...

最新文章

  1. 零距离感受2015年安全***大赛:静动之美 ***兼备
  2. 生成动态验证码的jsp
  3. android launcher3源码分析,Android Launcher3源码分析与修改
  4. $.fn.extend简单学习
  5. 阿里云HBase全新发布X-Pack NoSQL数据库再上新台阶 1
  6. / /* /**的区别
  7. 【正一专栏】巴萨四大皆空怎么办
  8. source insight使用
  9. CSS解决display:inline-block产生的缝隙间隙-代码写在一行 设置字体大小为0 设置负margin
  10. 1470: 区间求最值(RMQ问题,ST算法模板)
  11. SimpleExecutor.doQuery()-ResultSetHandler 处理结果集
  12. Android开发之自定义AlertDialog的大小
  13. C语言 | 链表概述
  14. SSH2 后端编程思路总结
  15. DNS配置,主从,子域,转发
  16. BZOJ 2039 人员雇佣 (最小割)
  17. java 重命名_Java如何重命名文件?
  18. React五——React-router
  19. 不会win10文件夹同步?教你两种方法
  20. qq空间显示手机型号android,qq说说显示手机型号 qq说说显示手机型号在哪里设置...

热门文章

  1. Markdown用法
  2. zsh性能分析(没搞完)
  3. 线程死锁与共享变量的使用(转载)
  4. 02繁花嗅Django笔记
  5. 2021 大厂实习笔试
  6. 深度学习(二十五)——Attention(2)
  7. 机器学习(六)——SVM(4)、学习理论
  8. android10唯一识别,Android 10 如何获取唯一值?
  9. optimized mysql_MySQL|MySQL执行计划
  10. java.lang.IllegalMonitorStateException