C#使用oledb操作excel文件的方法
本篇章节讲解C#使用oledb操作excel文件的方法。分享给大家供大家参考。具体分析如下: 不管什么编程语言都会提供操作Excel文件的方式,C#操作Excel主要有以下几种方式: 1.Excel 说明:利用Office 的Excel组件来操作excel文件 2.OpenXML 说明:一个操作字处理文档的组件包括Excel 3.NPOI 说明:一个开源的Excel读写库 4.OleDb 说明:使用Microsoft Jet 提供程序用于连接到 Excel 工作簿,将Excel文件作为数据源来读写 今天学习使用OleDb操作Excel文件 连接字符串:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:test.xls;Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;' 1.读取excel文件 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.获取工作簿中所有的工作表 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表 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文件并写入数据 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#程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Swift - 按钮(UIButton)的用法
- swift – 你能真的在AnyObject上调用任何Objective-C方法吗
- Oracle SQL 硬解析和子游标
- c# – 如何动态地将T对象转换为Amazon DynamoDB Document
- ruby-on-rails – Formtastic :: FormBuilder的未定义方法’
- 机器学习之正则化(Regularization)
- 基于Cocos2d-x学习OpenGL ES 2.0之多纹理
- ruby-on-rails-4 – sidekiq – 警告:ArgumentError:参数
- 使用c创建新的Windows注册表项
- 多个 .NET 框架