2021年7月4日 星期日

[ C# ] 用 OLEDB 載入 EXCEL 資料的方法

一、版本

1.Microsoft.JET.OLEDB.4.0


2.Microsoft.ACE.OLEDB

① Office 2007

Microsoft.ACE.OLEDB.12.0


② Office 2010

Microsoft.ACE.OLEDB.14.0


③ Office 2013

Microsoft.ACE.OLEDB.15.0


④ Office 2016

Microsoft.ACE.OLEDB.16.0


二、載入字串說明

Provider=Microsoft.ACE.OLEDB.12.0; Persist Security Info=False;Data Source=檔案位置; Extended Properties='Excel 8.0;HDR=Yes;IMEX=2'


1. HDR說明

① HDR=Yes:表示第一行為標題,不做數據使用。系統默認是為Yes。

② HDR=No:表示第一行不是標題,做數據使用。


2. IMEX說明

① IMEX=0:表示匯出模式,開啟Excel檔案做「寫入」用途

② IMEX=1:表示匯入模式,開啟Excel檔案做「讀取」用途

③ IMEX=2:表示連結模式,開啟Excel檔案同時支援「讀取」與「寫入」用途


三、宣告

using System.Data.OleDb; //使用excel資料讀取須宣告

四、語法:

String filePath = "C:\\Users\\shihfan\\Desktop\\測試的內容.xlsx";


//連線

OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=1'");


//開啟Excel檔案

conn.Open();


//抓取全部工作表名稱

DataTable dt = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);


//分頁的資料內容

DataTable schemaTable = new DataTable();

OleDbDataAdapter odp = new OleDbDataAdapter("Select * From [工作表1$]",conn);

odp.Fill(schemaTable);


//顯示到DataGridView

DataGridView1.ItemsSource = schemaTable.DefaultView;

沒有留言:

張貼留言

影片的問題請留在影片的留言區裡。
部落格不會另外通知給我,所以很難發現你有留言。