[.net]讀取Excel(本機需安裝office以及Microsoft Access Database Engine 2010 可轉散發套件)

  • 1243
  • 0

[.net]讀取Excel(本機需安裝office以及Microsoft Access Database Engine 2010 可轉散發套件)

在網路上發現很好用的讀取excel的方法,在這邊做個備份:

//定義OleDb======================================================
//1.檔案位置    注意絕對路徑 -> 非 \  是 \\
private const string FileName = "MyFile.xlsx";
//2.提供者名稱  Microsoft.Jet.OLEDB.4.0適用於2003以前版本,Microsoft.ACE.OLEDB.12.0 適用於2007以後的版本處理 xlsx 檔案
private const string ProviderName = "Microsoft.ACE.OLEDB.12.0;";
//3.Excel版本,Excel 8.0 針對Excel2000及以上版本,Excel5.0 針對Excel97。
private const string ExtendedString = "'Excel 8.0;";
//4.第一行是否為標題
private const string Hdr = "Yes;";
//5.IMEX=1 通知驅動程序始終將「互混」數據列作為文本讀取
private const string IMEX = "0';";
//================================================

public Form1()
{
	InitializeComponent();
}

//匯入Excel資料
private void btnImportExcel_Click(object sender, EventArgs e)
{
	
	string cs =
	   "Data Source=" + FileName + ";" +
	   "Provider=" + ProviderName +
	   "Extended Properties=" + ExtendedString +
	   "HDR=" + Hdr +
	   "IMEX=" + IMEX;
	//Excel 的工作表名稱 (Excel左下角有的分頁名稱)
	string SheetName = "example";

	using (OleDbConnection cn = new OleDbConnection(cs))
	{
		cn.Open();
		string qs = "select * from[" + SheetName + "$]";
		try
		{
			using (OleDbDataAdapter dr = new OleDbDataAdapter(qs, cn))
			{
				DataTable dt = new DataTable();
				dr.Fill(dt);
			   
			}
		}
		catch (Exception ex)
		{
			MessageBox.Show(ex.Message);
		}
	}
}



參考資料:內有更多更詳細的excel操作教學
[ADO.NET] 如何 使用 OLE DB 讀寫 Excel / 建立 Excel 檔案 (一)
http://www.cnblogs.com/cxd4321/archive/2010/03/04/1678346.html