c#中使用OLEDB簡單操作Excel文件


使用OLEDB操作Excel

關於OLEDB介紹參考

http://www.cnblogs.com/moss_tan_jun/archive/2012/07/28/2612889.html

 

 

連接字符串(fileName表示文件名)

 

"Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ";" + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";  //舊版本.xls

 

"Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + fileName + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\"";  //新版本.xlsx

 

 

操作代碼如下:

static void Main(string[] args)
{
    string fileName = @".\..\..\裝備信息.xls";
    //選擇解析文檔格式相匹配的字符串
    string connectString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ";" +
                           ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
    OleDbConnection connection = new OleDbConnection(connectString);
    connection.Open();//創建OleDbConnection對象進行連接數據源並打開連接

    string sqlCommand = "select * from [Sheet1$]";//定義查詢命令
    OleDbDataAdapter adapter = new OleDbDataAdapter(sqlCommand,connection);//使用OleDbDataAdapter識別器對象進行查詢
    DataSet dataset = new DataSet();//定義DataSet對象用來存放表數據,可以存放多個表
    adapter.Fill(dataset);//使用OleDbDataAdapter.Fill()把查詢的結果填充到DataSet對象中

    connection.Close();//查詢完畢后關閉連接

    DataTableCollection dataTables = dataset.Tables;//存放所有表的集合
    //因為當前xls中只有一個表需要進行操作,直接使用索引獲得即可
    DataTable dataTable = dataTables[0];//直接使用[index]索引取得我們要的表,存放在DataTable對象中
    DataRowCollection dataRows = dataTable.Rows;//使用DataRowCollection對象存放所有行的集合
    //遍歷DataRowCollection對象集合,取得每個行DataRow對象,通過索引取得某行中某列的值
    foreach (DataRow row in dataRows)
    {
        for (int i = 0; i < row.ItemArray.Length; i++)
        {
            Console.Write(row[i]+" ");
        }
        Console.WriteLine();
    }

    Console.ReadKey();
}

Excel文件的內容:

 

運行結果如下:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM