工具原料:

Windows 7,Visual Studio 2010, Microsoft Office 2007

创建解决方案

菜单》新建》项目》Windows窗体应用程序:

添加相关组件:

添加两个DataGridView,一个TextBox,两个按钮 ,如下图:

添加Excel资源:

C#创建Excel文件,这里实际上是从资源中提取一个事先创建好的Excel文件,文件提取成功后,使用OleDb方法连接Excel,向Excel文件中写入数据。

先在文件夹中新建一个Excel文件,在Sheet1表的第一行设置列名:

双击“Resources.resx”文件打开资源文件视图:

添加现有文件,选择刚刚创建的Excel文件

从资源中提取Excel文件

  1. string excelPath = AppDomain.CurrentDomain.BaseDirectory + "Excel" + DateTime.Now.Ticks + ".xlsx";
  2. if (System.IO.File.Exists(excelPath))
  3. {
  4. textBox1.Text += ("文件已经存在!");
  5. return;
  6. }
  7. try
  8. {
  9. //从资源中提取Excel文件
  10. System.IO.FileStream fs = new System.IO.FileStream(excelPath, FileMode.OpenOrCreate);
  11. fs.SetLength(0);
  12. fs.Write(Properties.Resources.Excel, 0, Properties.Resources.Excel.Length);
  13. fs.Close();
  14. fs.Dispose();
  15. textBox1.Text = "提取Excel文件成功!" + "\r\n";
  16. }
  17. catch (System.Exception ex)
  18. {
  19. excelPath = string.Empty;
  20. textBox1.Text += ("提取Excel文件失败:" + ex.Message);
  21. textBox1.Text += ("\r\n");
  22. Application.DoEvents();
  23. return;
  24. }

定义连接字符串

  1. //定义OleDB连接字符串
  2. string strConn = "Provider=Microsoft.Ace.OleDb.12.0;Persist Security Info=False;" + "data source=" + @excelPath + ";Extended Properties='Excel 12.0; HDR=yes; IMEX=10'";
  3. OleDbConnection conn = new OleDbConnection();
  4. conn.ConnectionString = strConn;

注意:连接字符串中IMEX的值使用的是10,如果是1或2,在执行Insert Into语句时就会报“操作必须使用一个可更新的查询”的错误。

在dataGridView1中显示Excel文件中的所有表的信息

  1. DataTable oleDt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
  2. dataGridView1.DataSource = oleDt;
  3. dataGridView1.Show();

向"Sheet1"表中插入几条数据,访问Excel的表的时候需要在表名后添加"$"符号,Insert语句可以不指定列名

  1. OleDbCommand cmd = null;
  2. try
  3. {
  4. //向"Sheet1"表中插入几条数据,访问Excel的表的时候需要在表名后添加"$"符号,Insert语句可以不指定列名
  5. cmd = new OleDbCommand("Insert Into [Sheet1$] Values('abc', 'bac', '0', '123456', 'test','测试','aa')", conn);//(A,B,C,D,E,F,G)
  6. cmd.ExecuteNonQuery();
  7. cmd.ExecuteNonQuery();
  8. cmd.ExecuteNonQuery();
  9. cmd.ExecuteNonQuery();
  10. cmd.ExecuteNonQuery();
  11. }
  12. catch (System.Exception ex)
  13. {
  14. textBox1.Text += ("插入数据失败:" + ex.Message);
  15. textBox1.Text += ("\r\n");
  16. }

在dataGridView2中显示表"Sheet1"的内容,访问Excel的表的时候需要在表名后添加"$"符号

  1. cmd = new OleDbCommand("Select * From [Sheet1$]", conn);
  2. OleDbDataAdapter adp = new OleDbDataAdapter(cmd);
  3. DataSet ds = new DataSet();
  4. adp.Fill(ds);
  5. dataGridView2.DataSource = ds.Tables[0];

遍历Schema的内容

  1. DataTable dt = conn.GetSchema();
  2. for (int i = 0; i < dt.Columns.Count; i++)
  3. {
  4. textBox1.Text += dt.Columns[i].Caption;
  5. if (i + 1 < dt.Columns.Count)
  6. {
  7. textBox1.Text += ",";
  8. }
  9. }
  10. for (int j = 0; j < dt.Rows.Count; j++)
  11. {
  12. for (int i = 0; i < dt.Columns.Count; i++)
  13. {
  14. if (dt.Rows[j][dt.Columns[i]] != null)
  15. {
  16. textBox1.Text += dt.Rows[j][dt.Columns[i]].ToString();
  17. }
  18. else
  19. {
  20. textBox1.Text += "null";
  21. }
  22. if (i + 1 < dt.Columns.Count)
  23. {
  24. textBox1.Text += ",";
  25. }
  26. }
  27. textBox1.Text += ("\r\n");
  28. }

关闭Excel数据连接

  1. if (conn.State != ConnectionState.Closed)
  2. {
  3. try
  4. {
  5. conn.Close();
  6. }
  7. catch (System.Exception ex)
  8. {
  9. textBox1.Text += ("关闭Excel数据连接:" + ex.Message);
  10. textBox1.Text += ("\r\n");
  11. }
  12. }

打开文件目录

    1. System.Diagnostics.Process.Start("explorer.exe", AppDomain.CurrentDomain.BaseDirectory);

C#创建Excel文件并将数据导出到Excel文件的更多相关文章

  1. 如何使用 Excel 对象将 DataGridView 数据导出到 Excel

    转载出处:https://code.msdn.microsoft.com/How-to-insert-image-into-93964561 本项目阐述如何使用 Open XML SDK 将图像插入到 ...

  2. 将datagrid中数据导出到excel中 -------<<工作日志2014-6-6>>

    前台datagrid数据绑定 #region 导出到excel中    /// <summary>    /// 2014-6-6    /// </summary>    / ...

  3. 使用PHPExcel将数据导出至Excel

    安装类库 从GitHub上下载PHPExcel类库 地址:https://github.com/PHPOffice/PHPExcel 解压后将Classes文件夹移动到ThinkPHP的extend目 ...

  4. vb.net-三种将datagridview数据导出为excel文件的函数

    第一种方法较慢,但是数据格式都比较好,需要引用excel的 Microsoft.Office.Interop.Excel.dll  office.dll #Region "导出excel函数 ...

  5. 数据导出至Excel文件--好库编程网http://code1.okbase.net/codefile/SerializeHelper.cs_2012122018724_118.htm

    using System; using System.IO; using System.Data; using System.Collections; using System.Data.OleDb; ...

  6. Qt中将QTableView中的数据导出为Excel文件

    如果你在做一个报表类的程序,可能将内容导出为Excel文件是一项必须的功能.之前使用MFC的时候我就写过一个类,用于将grid中的数据导出为Excel文件.在使用了QtSql模块后,我很容易的将这个类 ...

  7. Pl/sql 如何将oracle的表数据导出成excel文件?

    oracle将表数据导出成excel文件的方法 1)在SQL窗体上,查询需要导出的数据 --查询数据条件-- ; 结果视图 2)在查询结果的空白处,右键选择Copy to Excel 3) 查看导出e ...

  8. C#将数据集DataSet中的数据导出到EXCEL文件的几种方法

    using System; using System.Collections.Generic; using System.Text; using System.Data; using System.W ...

  9. VB将MSHFlexGrid数据导出到Excel文件通用功能

    1.通用导出Excel功能. 2.将 MSHFlexGrid数据导出到Excel文件通用功能. 3.具体代码如下: '将下列代码保存到一模块文件中,调用方法:Export fgrid1,cd1 Pub ...

随机推荐

  1. mongodb 数据备份,还原笔记

    公司数据库迁移,所以补充了一下知识: 1 集合的导入和导出 命令行帮助 mongoexport --help  导出 导出 newsServer 数据库下  news 集合 mongoexport - ...

  2. 百练_4120 硬币(DP)

    描述 宇航员Bob有一天来到火星上,他有收集硬币的习惯.于是他将火星上所有面值的硬币都收集起来了,一共有n种,每种只有一个:面值分别为a1,a2… an. Bob在机场看到了一个特别喜欢的礼物,想买来 ...

  3. git 使用小结

    git git是一个分布式版本控制系统,主要用于多人协作.可以将自己的代码托管到github上. 常用的几个命令 git pull 拉取别人的修改到本地,如果拉取内容和本地所作的修改存在冲突,git会 ...

  4. bat文件的妙用1-一键开启所有开发软件

    每天早上来的第一件事情,就是打开电脑,然后开一堆的软件 1.wamp 开发环境 2.钉钉   通讯工具 3.PHPstrom 开发工具 4.nodejs.bat Nodejs的扩展(node D:/w ...

  5. 一台Ubuntu server上安装多实例MySQL

    受环境所迫,在一台Ubuntu server上安装多个实例MySQL. 手动安装MySQL 环境:Ubuntu server 11.10 64bit + mysql-5.5.17-linux2.6-x ...

  6. CentOS6.4 安装JDK

    1.下载JDK,这里用的是jdk-7u65-linux-x64.tar.gz,请到官网上下载. 2.清除默认的JDK,yum remove java 3.解压文件 tar -xzf jdk-7u65- ...

  7. 【实用技巧】文件MD5修改方法

    方法一 利用md5修改器   更新日志:2011-10-6 22:00修正对于路径中存在空格修改无效的bug2011-10-6 20:17更新:1.回归简约界面2.直接拖拽即可捕获地址3.一键修改文件 ...

  8. [转载]C# HashTable 遍历与排序

    private void Form1_Load(object sender, EventArgs e) { Hashtable ht = new Hashtable(); ht.Add("j ...

  9. Wp8开发环境搭建总结

    原地址:http://blog.csdn.net/lixing732100721/article/details/8564985 注意:技术发展太快  此文章年代已久  请大家酌情参照 系统要求(来自 ...

  10. PHP unlink() 函数

    定义和用法 unlink() 函数删除文件. 若成功,则返回 true,失败则返回 false. 语法 unlink(filename,context) 参数 描述 filename 必需.规定要删除 ...