1. 程式人生 > >Asp.Net(C#)使用oleDbConnection 連接Excel

Asp.Net(C#)使用oleDbConnection 連接Excel

cti 4.0 datatable asp.net 數據 而不是 sele .sh 驅動

來自森大科技官方博客 http://www.cnsendblog.com/?p=84

Asp.Net(C#)使用oleDbConnection 連接Excel

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/MyExcel.xls;Extended Properties= "Excel 8.0;HDR=Yes;IMEX=1"

針對如果上連接字符串 對相關屬性進行說明如下:"HDR=Yes;”指示第一行中包含列名,而不是數據,"IMEX=1;”通知驅動程序始終將“互混”數據列作為文本讀取。Excel 8.0 針對Excel2000及以上版本,Excel5.0 針對Excel97。

using System.Data.OleDb;
using System.Data;

String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=c:/test.xls;" +
"Extended Properties=Excel 8.0;";
OleDbConnection objConn = new OleDbConnection(sConnectionString);
objConn.Open();
OleDbCommand objCmdSelect =new OleDbCommand("SELECT * FROM [sheet1]", objConn);
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
objAdapter1.SelectCommand = objCmdSelect;
DataSet objDataset1 = new DataSet();
//將Excel中數據填充到數據集
objAdapter1.Fill(objDataset1, "XLData");
objConn.Close();

從上面可以看出,使用ADO.NET可將Excel當作普通數據庫,使用SQL語句來操作。

通過ADO.NET獲取Excel文件的各Sheet名稱,可使用元數據方式:

String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=c:/test.xls;" +
"Extended Properties=Excel 8.0;";
OleDbConnection cn = new OleDbConnection(sConnectionString);
cn.Open();
DataTable tb = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
foreach (DataRow row in tb.Rows)
{
//遍歷彈出各Sheet的名稱
MessageBox.Show(row["TABLE_NAME"]);
}

關於使用ADO.NET創建並寫入Excel文件與普通數據庫操作極為類似,參見以下代碼:

String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=c:/test.xls;" +
"Extended Properties=Excel 8.0;";
OleDbConnection cn = new OleDbConnection(sConnectionString);
string sqlCreate = "CREATE TABLE TestSheet ([ID] INTEGER,[Username] VarChar,[UserPwd] VarChar)";
OleDbCommand cmd = new OleDbCommand(sqlCreate, cn);
//創建Excel文件:C:/test.xls
cn.Open();
//創建TestSheet工作表
cmd.ExecuteNonQuery();
//添加數據
cmd.CommandText = "INSERT INTO TestSheet VALUES(1,‘elmer‘,‘password‘)";
cmd.ExecuteNonQuery();
//關閉連接
cn.Close();

Asp.Net(C#)使用oleDbConnection 連接Excel