none
C# OleDb With Excel RRS feed

  • 問題

  • 請問 各位先進

    我有一個 Excel file

     內容是

               A            B       C        D       E

    1       Name    2/24  2/25    2/26

    2       AF02       100    0         0

    3       AF03      20       30       0

     

    要將裡面的值取出來 程式如下

        string sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=\"Excel 8.0;HDR=YES\"";
        OleDbConnection cn = new OleDbConnection(sConnectionString);   
        cn.Open();
        DataTable dt = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);
        string tableName = dt.Rows[0][2].ToString().Trim();
        string sSQL = "Select * From [" + tableName + "]";
        OleDbDataAdapter dap = new OleDbDataAdapter(sSQL,sConnectionString);
        DataSet ds = new DataSet();
        dap.Fill(ds);

     

          問題是 ds.Tables[0].Columns[0].ColumnName 的值是 Name 

    可是ds.Tables[0].Columns[1].ColumnName 取出的並不是日期而是 F2

    如果不是輸入日期的話值就正確

    請問該如何正確取出欄位裡的日期呢?

     

    謝謝指教

     

     

    2006年5月5日 上午 02:18

解答

  • 目前據我所知,只有一個方法,就是把欄位列的格式都改成字串,才可以依內容讀成欄位名稱,Excel 對於無法讀取內容到的欄位都會變成 "F" + colunm index
    2006年5月5日 上午 02:28
    版主