2010-05-05 7 views
3

Après quelques recherches sur google, j'ai découvert comment lire les noms de colonnes Excel How To Retrieve Schema Information by Using GetOleDbSchemaTable and Visual Basic .NET . Bien que l'exemple soit dans VB.Net, j'utilise C# .net. Mon code est:Problème lors de la lecture des noms de colonnes Excel en utilisant GetOleDbSchemaTable

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(); 

       } 
} 

Mais je trouve que le champ de la colonne est vide et désormais obtenir l'exception

Il n'y a pas de ligne à la position 0.

Le fichier Excel REVIENT

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

et je me suis assuré que je passe le bon fichier & nom de la feuille.

Répondre

0

Il n'y a pas de ligne à la position 0.

Essayez

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

Désolé, je peux avoir la syntaxe un peu out - je suis plus un gars VB.net.

Questions connexes