C#连接Excel表格
2013-10-28 10:54
281 查看
C#连接Excel表格,以实现对Excel表格的读取和写入。
首先,应确保ODBC中已安装有Excel表格文件的驱动"Microsoft Excel Driver(*.xls)"。
控制面板->管理工具->数据源(ODBC)如下:
命名空间:
using System.Data.OleDb;
连接语句:
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "DataSource=test.xls;Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
//DataSource是打开的Excel表格的文件名。
//因为连接的Excel表格是2007的,所以为Excel8.0(若为03版,应为4.0)。
//HDR=Yes/No Yes表示第一行中包含列名,而不是数据。No即不包含,直接是数据。
//IMEX=1 通知驱动程序始终将“胡混数据列作为文本读取”
//注意大小写区别
OleDbConnection conn = new OleDbConnection(connStr);
查询语句:
OleDbDataAdapter myAdapter = new OleDbDataAdapter("select * from [Sheet1$]",conn);
//Excel表格默认有三个表格,是Sheet1、Sheet2、Sheet3,在引用时应加 [$]加以表示。
//到这里,就已经将test.xls文件中的表格Sheet1中的内容读取到DataAdapter中了。
DataSet myDataSet = new DataSet();
myAdapter.Fill(myDataSet);
//将查询的结果填充至DataSet中,即可对DataSet中的DataTable的行列单元格内容进行访问了喔~
新建表格:
sql = "CREATE TABLE test ([stuId] varchar,[stuName] varchar)";
OleDbCommand myCommand = new OleDbCommand(sql, myConnToExcel);
myCommand.ExecuteNonQuery();
插入语句:
for (int i = 0; i < dataGridView1.RowCount; i++)
{
sql = "insert into demo values (\'" + dataGridView1.Rows[i].Cells[0].Value.ToString() + "\',\'" +
dataGridView1.Rows[i].Cells[1].Value.ToString() + "\')";
myCommand = new OleDbCommand(sql, myConnToExcel);
myCommand.ExecuteNonQuery();
}
删除/更新语句:
这个就异曲同工了~~
首先,应确保ODBC中已安装有Excel表格文件的驱动"Microsoft Excel Driver(*.xls)"。
控制面板->管理工具->数据源(ODBC)如下:
命名空间:
using System.Data.OleDb;
连接语句:
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "DataSource=test.xls;Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
//DataSource是打开的Excel表格的文件名。
//因为连接的Excel表格是2007的,所以为Excel8.0(若为03版,应为4.0)。
//HDR=Yes/No Yes表示第一行中包含列名,而不是数据。No即不包含,直接是数据。
//IMEX=1 通知驱动程序始终将“胡混数据列作为文本读取”
//注意大小写区别
OleDbConnection conn = new OleDbConnection(connStr);
查询语句:
OleDbDataAdapter myAdapter = new OleDbDataAdapter("select * from [Sheet1$]",conn);
//Excel表格默认有三个表格,是Sheet1、Sheet2、Sheet3,在引用时应加 [$]加以表示。
//到这里,就已经将test.xls文件中的表格Sheet1中的内容读取到DataAdapter中了。
DataSet myDataSet = new DataSet();
myAdapter.Fill(myDataSet);
//将查询的结果填充至DataSet中,即可对DataSet中的DataTable的行列单元格内容进行访问了喔~
新建表格:
sql = "CREATE TABLE test ([stuId] varchar,[stuName] varchar)";
OleDbCommand myCommand = new OleDbCommand(sql, myConnToExcel);
myCommand.ExecuteNonQuery();
插入语句:
for (int i = 0; i < dataGridView1.RowCount; i++)
{
sql = "insert into demo values (\'" + dataGridView1.Rows[i].Cells[0].Value.ToString() + "\',\'" +
dataGridView1.Rows[i].Cells[1].Value.ToString() + "\')";
myCommand = new OleDbCommand(sql, myConnToExcel);
myCommand.ExecuteNonQuery();
}
删除/更新语句:
这个就异曲同工了~~
相关文章推荐
- 一条C#连接SQL Server数据库写法
- c#连接mysql数据库,增删查改命令执行
- c# winform 桌面程序连接Access数据库,操作Access数据库,分页,ADO.NET
- asp.net c# 连接mysql库(mysql-connection-net库)中的例子
- C#远程连接SQL 2005...
- C#建立TCP/IP连接
- C#笔记之数据库连接
- C#连接数据库 用户登录
- C#连接数据库(ACCESS,SQL SERVER)
- C#字符串拼接 "+"连接与Append()方法 速度比较
- c#2005中winform如何连接数据库
- c#连接access数据库,把数据库包括在项目中
- C# 怎样实现远程连接SQL Server2005
- C#连接MYSQL,MySQLDriver.dll 有BUG,不要用!
- C# 连接SQL数据库 常用连接字符串
- C#连接Oracle数据库的字符串
- c# 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系(转)
- C#连接sqlserver时如何让Integrated Security=True生效