[Windows問題-4] C#讀取excel文件

問題:使用C#程序讀取excel文件,包括後綴爲.xls和.xlsx

相信很多朋友都有在程序中讀取excel文件的需求,我在調研的過程中也看了很多文章,基本思路都是正確的,但是有一些代碼是沒有通過驗證的,在實際操作的過程中總會遇到一些問題,經過摸索,最終總結出一套可行的方案,在這裏跟大家分享。

讀取Excel的方法有多種,我這裏選擇了一種效率較高的方法,將讀取出來的數據存放到一個DataSet之中。

代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.OleDb;
using System.Data;

namespace ConvertEXCEL2DLL
{
    //實現讀取Excel文件的功能
    class ReadExcel
    {
        private static String strCon1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
        private static String strCon2 = ";Extended Properties='Excel 8.0;HDR=No;IMEX=1;'";
        public static String m_filePathExcel = "c:\\test.xls";

        /*從excel中讀取數據*/
        public static DataSet ImportExcelToDataSet()
        {

            OleDbConnection conn = new OleDbConnection(strCon1 + m_filePathExcel + strCon2);
            try
            {
                conn.Open();
            }
            catch (InvalidOperationException ie)
            {
                Console.Write("連接重複打開。\n");
            }
            catch (OleDbException oe)
            {
                Console.Write("在打開連接時出現連接級別的錯誤。\n");
            }


            OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT *FROM [Sheet1$]", conn);

            DataSet myDataSet = new DataSet();
            try
            {
                myCommand.Fill(myDataSet);

                Console.WriteLine("Read OK ");
            }
            catch (Exception ex)
            {
                Console.Write("formation error");
            }
            return myDataSet;
        }

    }
}
注意:其實這裏需要強調的只有一點,那就是strCon1 StrCon2和 m_filePathExcel的格式,要注意這裏面的空格不能少,單引號不能少,m_filePathExcel中的\要轉義爲\\。

HDR = Yes的含義是Excel表中第一行爲表頭,不需要讀出,如果需要則改爲No。其他的含義都可以在網上查到。



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