2009-07-08 6 views
1

Comment vérifier si une cellule particulière dans cette gamme est verrouillé,quel est le moyen de vérifier si la cellule Excel est verrouillé ou non?

Je poste le petit extrait de mon code, S'il vous plaît suggestionsme, la meilleure façon d'écrire à la cellule si la cellule n'est pas verrouillée.

si (lecteur.HasRows) {minRow = 0; minCol = 0;

       // Process each result in the result set 
           while (reader.Read()) 
           { 
            // Create an array big enough to hold the column values 
            object[] values = new object[reader.FieldCount]; 

            // Add the array to the ArrayList 
            rowList.Add(values); 

            // Get the column values into the array 
            reader.GetValues(values); 

            int iValueIndex = 0; 
            int jValueIndex = 1; 

            // If the Reading Format is by ColumnByColumn 
            if (CurTaskNode.ReadFormat == "ColumnbyColumn") 
            { 
             minCol = 0; 
             int lengthHeader = 0; 
             if (CurTaskNode.ReadHeader == true) 
             { 
              lengthHeader = CurTaskNode.HEADER_MAX_ROW - CurTaskNode.HEADER_MIN_ROW; 
             } 
             else 
             { 
              lengthHeader = CurTaskNode.HeaderData.Length; 

             } 
             for (int iCol = 0; iCol < lengthHeader; iCol++) 
             { 

              // Checking whether the Header data exists or not 
              if (CurTaskNode.HeaderData[minCol] != "") 
              { 
               //if (!(excelworksheet.Cells[CurTaskNode.DATA_MIN_ROW + minRow, CurTaskNode.DATA_MIN_COL + minCol]).Locked) 
               //{ 

               // Assigning the Value from reader to the particular cell in excel sheet 

                 excelworksheet.Cells[CurTaskNode.DATA_MIN_ROW + minRow, CurTaskNode.DATA_MIN_COL + minCol] = values[iValueIndex]; 
                 iValueIndex++; 

               //} 

              } 
              minCol++; 
             } 
             minRow++; 
            } 

Dans le code, l'écriture se surpasser cellule est

excelworksheet.Cells [CurTaskNode.DATA_MIN_ROW + minRow, CurTaskNode.DATA_MIN_COL + minCol] = valeurs [iValueIndex];

ici je dois vérifier la condition si la cellule est verrouillée ou non, j'ai essayé, mais ce n'est pas correct. CurTaskNode.DATA_MIN_ROW est la valeur de mineure pour que les données à écrire dans la feuille excel, cette valeur vient du fichier XML et si je dois écrire de (10, 2) à (20, 10), cellules, dans lequel si la première cellule est dit verrouillé, je ne peux pas l'écrire à cette cellule et je dois procéder à l'écriture avec d'autres cellules.

Aidez-moi s'il vous plaît à le faire. Merci, Ramm

Répondre

1

((plage) excelworksheet.Cells [CurTaskNode.DATA_MIN_ROW + minRow, CurTaskNode.DATA_MIN_COL + minCol]). Locked est la propriété permettant de rechercher un attribut de cellule verrouillé.

excelworksheet.Protection.AllowBlahBlahBlah est la propriété pour obtenir/définir une sorte de protection pour une feuille de calcul. Excelworksheet.ProtectionMode est un booléen en lecture seule pour savoir si la protection définie par AllowBlahBlahBlah est activée.

Je pourrais utiliser

Range r = (Range)excelworksheet.Cells[CurTaskNode.DATA_MIN_ROW + minRow, CurTaskNode.DATA_MIN_COL + minCol]?? new Range(); // cover null 
    if(
    r.Locked && // is cell locked 
    excelworksheet.ProtectionMode && // is sheet protected 
    !excelworksheet.Protection.AllowFormattingCells) // are locked cells not allowed to be messed with 
     DoSomethingBecauseItsProtected(); 
+0

Salut, excelworksheet.Range (CurTaskNode.DATA_MIN_ROW + minRow, CurTaskNode.DATA_MIN_COL + minCol) .Locked est lui-même déclaration invalide, puisque je ne peux pas utiliser .Locked pour cette type. est-ce que nous devons déclarer l'objet pour elle au début et plus tard vérifier si son verrouillé ou pas> S'il vous plaît aidez-moi à faire ce THanks Ramm – Ramm

+1

J'ai fait des modifications. Vous avez raison, vous devez d'abord lancer l'objet Cells pour atteindre la propriété verrouillée. – gjutras

Questions connexes