2010-05-05 61 views
3

經過一番谷歌搜索後,我發現如何讀取excel列名How To Retrieve Schema Information by Using GetOleDbSchemaTable and Visual Basic .NET 。雖然示例在VB.Net中,但我使用的是C#.net。 我的代碼是:使用GetOleDbSchemaTable讀取excel列名的問題

public DataSet ReadXslToDataset(string fileName,string sheetName) 
      { 
       ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+fileName+";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'"; 
       using (objConn = new OleDbConnection(ConnectionString)) 
       { 
         objConn.Open(); 

         String[] restrection = { null, null, sheetName, null }; 
         dtColumnNames = objConn.GetOleDbSchemaTable (OleDbSchemaGuid.Columns, restrection); 
         string strColumnName = string.Empty; 
         if (dtColumnNames != null) 

          strColumnName = dtColumnNames.Rows[0]["COLUMN_NAME"].ToString(); 

       } 
} 

但我發現,列字段爲空,並從此獲得異常

有在位置沒有行0

Excel文件看起來

S.No Issue 
1  log4net message pattern not displayed properly in the log file 
2  Reading blank rows from Excel while populating into dataset 

我確保我通過正確的文件&表名。

回答

0

沒有排在位置0

嘗試

if (dtColumnNames != null) { 
    if(dtColumnNames.Rows.Count > 0){ 
     strColumnName = ColumnNames.Rows[0]["COLUMN_NAME"].ToString 
    } 
    } 

對不起,我可能會稍微有語法出來 - 我更多的是VB.net的傢伙。