C#讀取Excel數據

用OLEDB進行Excel文件數據的讀取,並返回DataSet數據集。其中有幾點需要注意的:

1.連接字符串中參數IMEX 的值:
0 is Export mode 1 is Import mode 2 is Linked mode (full update capabilities)
IMEX有3個值:當IMEX=2 時,EXCEL文檔中同時含有字符型和數字型時,比如第C列有3個值,2個爲數值型 123,1個爲字符型 ABC,當導入時,
頁面不報錯了,但庫裏只顯示數值型的123,而字符型的ABC則呈現爲空值。當IMEX=1時,無上述情況發生,庫裏可正確呈現 123 和 ABC.
2.參數HDR的值:
HDR=Yes,這代表第一行是標題,不做爲數據使用 ,如果用HDR=NO,則表示第一行不是標題,做爲數據來使用。系統默認的是YES
3.參數Excel 8.0
對於Excel 97以上版本都用Excel 8.0
Google AdSense 會在您的網站上提供與內容相關的廣告
 

 /**//// <summary>
        /// 讀取Excel文件,將內容存儲在DataSet中
        /// </summary>
        /// <param name="opnFileName">帶路徑的Excel文件名</param>
        /// <returns>DataSet</returns>
        private DataSet ExcelToDataSet(string opnFileName)
        {
            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+opnFileName+";Extended Properties=/"Excel 8.0;HDR=YES;IMEX=1/"";
            OleDbConnection conn = new OleDbConnection(strConn);           
            string strExcel = "";
            OleDbDataAdapter myCommand = null;
            DataSet ds = new DataSet();
            strExcel = "select * from [sheet1$]";
            try
            {
                conn.Open();
                myCommand = new OleDbDataAdapter(strExcel, strConn);
                myCommand.Fill(ds,"dtSource");
                return ds;
            }
            catch (Exception ex)
            {
                MessageBox.Show("導入出錯:" + ex, "錯誤信息");
                return ds;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章