采用OleDB读取EXCEL文件
1、声明连接字段
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;";其中Path为你要打开的Excel文件的路径
2、声明OleDB对象
OleDbConnection OleConn = new OleDbConnection(strConn);
3、打开Excel文件
OleConn.Open();
4、获取查询结果
sql = "select * from [Sheet1$]";
OleDbDataAdapter OleAdapt = new OleDbDataAdapter(sql,OleConn);
DataSet ds = new DataSet();
OleAdapt.Fill(ds, "Sheet1");
实例代码:
public DataSet getData(string path,string sql)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
OleDbConnection OleConn = new OleDbConnection(strConn);
OleConn.Open();
sql = "select * from [Sheet1$]";
OleDbDataAdapter OleAdapt = new OleDbDataAdapter(sql,OleConn);
DataSet ds = new DataSet();
OleAdapt.Fill(ds, "Sheet1");
return ds;
}
采用OleDB向EXCEL文件中写入
System.Data.OleDb.OleDbCommandBuilder builder=new OleDbCommandBuilder(myCommand);
//QuotePrefix和QuoteSuffix主要是对builder生成InsertComment命令时使用。 builder.QuotePrefix="["; //获取insert语句中保留字符(起始位置) builder.QuoteSuffix="]"; //获取insert语句中保留字符(结束位置) DataSet newds=new DataSet(); myCommand.Fill(newds ,"Table1") ; for(int i=0;i<oldds.Tables[0].Rows.Count;i++) { //在这里不能使用ImportRow方法将一行导入到news中,因为ImportRow将保留原来DataRow的所有设置(DataRowState状态不变)。 在使用ImportRow后newds内有值,但不能更新到Excel中因为所有导入行的DataRowState!=Added DataRow nrow=newds.Tables["Table1"].NewRow(); for(int j=0;j<newds.Tables[0].Columns.Count;j++) { nrow[j]=oldds.Tables[0].Rows[i][j]; } newds.Tables["Table1"].Rows.Add(nrow); } myCommand.Update(newds,"Table1"); myConn.Close(); } 其中oldds为添加源
浙公网安备 33010602011771号