溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

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

發(fā)布時(shí)間:2020-06-22 11:08:38 來(lái)源:網(wǎng)絡(luò) 閱讀:932 作者:森大科技 欄目:編程語(yǔ)言

來(lái)自森大科技官方博客 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"
針對(duì)如果上連接字符串 對(duì)相關(guān)屬性進(jìn)行說(shuō)明如下:"HDR=Yes;”指示第一行中包含列名,而不是數(shù)據(jù),"IMEX=1;”通知驅(qū)動(dòng)程序始終將“互混”數(shù)據(jù)列作為文本讀取。Excel 8.0 針對(duì)Excel2000及以上版本,Excel5.0 針對(duì)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中數(shù)據(jù)填充到數(shù)據(jù)集
objAdapter1.Fill(objDataset1, "XLData");
objConn.Close();

從上面可以看出,使用ADO.NET可將Excel當(dāng)作普通數(shù)據(jù)庫(kù),使用SQL語(yǔ)句來(lái)操作。

通過(guò)ADO.NET獲取Excel文件的各Sheet名稱(chēng),可使用元數(shù)據(jù)方式:

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的名稱(chēng)
MessageBox.Show(row["TABLE_NAME"]);
}

關(guān)于使用ADO.NET創(chuàng)建并寫(xiě)入Excel文件與普通數(shù)據(jù)庫(kù)操作極為類(lèi)似,參見(jiàn)以下代碼:

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);
//創(chuàng)建Excel文件:C:/test.xls
cn.Open();
//創(chuàng)建TestSheet工作表
cmd.ExecuteNonQuery();
//添加數(shù)據(jù)
cmd.CommandText = "INSERT INTO TestSheet VALUES(1,'elmer','password')";
cmd.ExecuteNonQuery();
//關(guān)閉連接
cn.Close();

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI