本文实例讲述了C#使用oledb操作excel文件的方法。分享给大家供大家参考。具体分析如下:

不管什么编程语言都会提供操作Excel文件的方式,C#操作Excel主要有以下几种方式:

1.Excel

说明:利用Office 的Excel组件来操作excel文件
优点:能够完全操作Excel文件,生成丰富文件内容
缺点:需要电脑安装Excel,会启动Excel进程这在web上很不方便

2.OpenXML

说明:一个操作字处理文档的组件包括Excel
优点:能够操作操作Excel2007版本文件
缺点:只能够操作Excel2007文件

3.NPOI

说明:一个开源的Excel读写库
优点:不需要安装Excel
缺点:只能够操作Excel2003文档,对文档内容控制不完全

4.OleDb

说明:使用Microsoft Jet 提供程序用于连接到 Excel 工作簿,将Excel文件作为数据源来读写
优点:简单快速,能够操作高版本Excel
缺点:只能够进行有限的操作(读、写)

今天学习使用OleDb操作Excel文件

连接字符串:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\test.xls;Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'
provider:表示提供程序名称
Data Source:这里填写Excel文件的路径
Extended Properties:设置Excel的特殊属性
Extended Properties 取值:
Excel 8.0 针对Excel2000及以上版本,Excel5.0 针对Excel97。
HDR=Yes 表示第一行包含列名,在计算行数时就不包含第一行
IMEX 0:导入模式,1:导出模式:2混合模式

1.读取excel文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
 String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
 "Data Source="+openFileDialog1.FileName+";"+
 "Extended Properties='Excel 8.0;HDR=Yes;IMEX=2'";
 //实例化一个Oledbconnection类(实现了IDisposable,要using)
 using (OleDbConnection ole_conn = new OleDbConnection(sConnectionString))
 {
  ole_conn.Open();
  using (OleDbCommand ole_cmd = ole_conn.CreateCommand())
  {
  //类似SQL的查询语句这个[Sheet1$对应Excel文件中的一个工作表]
  ole_cmd.CommandText = "select * from [Sheet1$]";
  OleDbDataAdapter adapter = new OleDbDataAdapter(ole_cmd);
  DataSet ds = new DataSet();
  adapter.Fill(ds, "Sheet1");
    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
  {
   MessageBox.Show(ds.Tables[0].Rows[i]["商家名称"].ToString());
  }
  }
 }
}

2.获取工作簿中所有的工作表

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
 String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
 "Data Source="+openFileDialog1.FileName+";"+
 "Extended Properties='Excel 8.0;HDR=Yes;IMEX=2'";
 //实例化一个Oledbconnection类(实现了IDisposable,要using)
 using (OleDbConnection ole_conn = new OleDbConnection(sConnectionString))
 {
  ole_conn.Open();
  using (OleDbCommand ole_cmd = ole_conn.CreateCommand())
  {
  DataTable tb = ole_conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
  foreach (DataRow row in tb.Rows)
  {
   MessageBox.Show(row["TABLE_NAME"].ToString());
  }
  }
 }
}

3.写入数据到Excel表

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
 String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
 "Data Source="+openFileDialog1.FileName+";"+
 "Extended Properties=Excel 8.0;";
 //实例化一个Oledbconnection类(实现了IDisposable,要using)
 using (OleDbConnection ole_conn = new OleDbConnection(sConnectionString))
 {
  ole_conn.Open();
  using (OleDbCommand ole_cmd = ole_conn.CreateCommand())
  {
  ole_cmd.CommandText = "insert into [Sheet1$](商户ID,商家名称)values('DJ001','点击科技')";
  ole_cmd.ExecuteNonQuery();
  MessageBox.Show("数据插入成功......");
  }
 }
}

4.创建Excel文件并写入数据

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
  "Data Source=d:\\excel1.xls;" +
  "Extended Properties=Excel 8.0;";
 //实例化一个Oledbconnection类(实现了IDisposable,要using)
 using (OleDbConnection ole_conn = new OleDbConnection(sConnectionString))
 {
  ole_conn.Open();
  using (OleDbCommand ole_cmd = ole_conn.CreateCommand())
  {
  ole_cmd.CommandText = "CREATE TABLE CustomerInfo ([CustomerID] VarChar,[Customer] VarChar)";
  ole_cmd.ExecuteNonQuery();
  ole_cmd.CommandText = "insert into CustomerInfo(CustomerID,Customer)values('DJ001','点击科技')";
  ole_cmd.ExecuteNonQuery();
  MessageBox.Show("生成Excel文件成功并写入一条数据......");
  }
}

希望本文所述对大家的C#程序设计有所帮助。

转载于:https://www.cnblogs.com/StivenYang/p/8441283.html

C#使用oledb操作excel文件的方法相关推荐

  1. php删除excel文件,php操作excel文件的方法小结

    php操作excel文件的方法小结 php操作excel文件的方法有哪些?就跟随百分网小编一起去了解下吧,想了解更多相关信息请持续关注我们应届毕业生考试网! 一.php,不用COM,生成excel文件 ...

  2. php 设置excel格式,php 操作excel文件的方法小结

    用php生成excel文件的方法,单独就是用的php,注意一下数据的输入方法即可. 一.php,不用COM,生成excel文件 header("Content-type:applicatio ...

  3. Java利用jxl.jar操作Excel文件的方法——把两列相同的数据扫描输出到新的Excel文件中...

    为什么80%的码农都做不了架构师?>>>    最近公司在做数据库方面的改造,其中有两个核心库,可以把它们分别命名成A侧库和B侧库,改造的目的是把AB的库整合成一个库,其中表名相同的 ...

  4. c#操作excel方式二:采用OleDB操作Excel文件

    内容:1.dataset转excel函数代码 2.excel转dataset函数代码 3.运用实例: 3.1写入excel 3.2读取excel dataset格式写入excel函数如下: publi ...

  5. 使用JDBC操作EXCEL的新方法

    Excel是常用的办公工具,如果你是一个sql高手,可能希望能用SQL来操作Excel文件,因为有时候用SQL操作数据更简单,功能更强.目前在Java中用sql操作excel文件的方法一般是通过jdb ...

  6. ssh长时间不操作便断开_不懂Excel文件恢复方法?只要跟着这样操作,便可以光速恢复文件...

    假如你不小心将Excel文件删除了,那这个时候你会采取哪些办法来找回被误删的Excel文件呢?下面我们就来说说这个问题. 一.电脑端操作 1.回收站 第一种找回Excel文件的方法是使用电脑上的回收站 ...

  7. C# 操作Excel文件之OleDb方式

    对于Excel文件,想必大家也都知道这个的重要性,无论是做哪种语言的开发,都少不了对Excel文件的操作; 后面会用三种方式用来读取Excel,用来满足不同的项目需求: 第一种方式就是本文所要讲的Ol ...

  8. C#在客户端和服务端操作Excel文件

    一.在客户端把数据导入到Excel文件步骤 1.创建Excel application对象,打开或生成Excel文件 //服务端创建StringBuilder对象     System.Text.St ...

  9. C#操作Excel文件(转)

    摘要:本文介绍了Excel对象.C#中的受管代码和非受管代码,并介绍了COM组件在.net环境中的使用. 关键词:受管代码:非受管代码:Excel对象:动态连接库 引言 Excel是微软公司办公自动化 ...

最新文章

  1. linux小白-基础命令-ls
  2. 2019年有三AI“春季”划,给我一个荣耀,还你一生荣耀
  3. C# WINFORM中的combobox.items.add实现像web开发那样,添加显示内容text和实际value值
  4. vue-cli proxy中跨域中pathRewrite配置理解
  5. 目标检测发展路程(一)——Two stage
  6. android 本地地址转换为url,android本地mipmap图片转url、绝对路径转URL URL URI File Path 转换...
  7. python基础之面向对象编程
  8. 获取activemq 队列所有数据_ActiveMQ的应用
  9. 这个0day 影响启用 Sandbox 的多数 Windows 10 版本
  10. MySQL之MHA架构的介绍
  11. Notepad++插件安装和使用和打开大文件
  12. unreal4怎么设置游戏模式_怎么使用虚幻4开发游戏?
  13. OpenCore 启动菜单界面美化增加gui界面
  14. iphone 扩容测试软件,拯救iPhone 12 64G!闪迪打造的扩容神器上手:轻松省钱
  15. 关于网页加载慢的一个解决方法——取消勾选【局域网设置】中的【自动检测设置】
  16. 思科关闭日志_思科交换机日志管理
  17. 15条技巧提高你的写作技巧
  18. python重新安装ssl_python3安装文件遇到ssl未安装问题
  19. 毕业论文写作中致谢词的常见写法及优秀范文
  20. Python 真的好学吗?

热门文章

  1. pyinstaller与anaconda python_python – 在Anaconda安装后运行pyinstaller导致ImportError:没有名为’pefile’的模块...
  2. AtCoder Beginner Contest 223
  3. linux上的手机管家,闪电手机管家极速版
  4. 学习C++项目——select模型,poll模型和epoll模型
  5. 学习C++项目—— 计算机网络编程基础 和 学习多线程,多进程基础
  6. 机器人水库涵洞检测_管渠清淤机器人、管道浑水探测机器人……想不到吧?哈排水集团竟然是“科研达人”...
  7. torch的使用笔记
  8. python+Treelite:Sklearn树模型训练迁移到c、java部署
  9. Ansible入门使用
  10. 高性能web建站规则(将js放在页面底部)