Accesso alla Cellula del Foglio di Lavoro

Accesso alle Celle in un Foglio di Lavoro

Ogni foglio di lavoro contiene una proprietà chiamata Cells che è effettivamente una collezione di oggetti GridCell dove un oggetto GridCell rappresenta una cella in Aspose.Cells.GridWeb. È possibile accedere a qualsiasi cella utilizzando Aspose.Cells.GridWeb. Ci sono due metodi preferiti, ognuno dei quali è discusso di seguito.

Utilizzo del nome della cella

Tutte le celle hanno un nome univoco. Ad esempio, A1, A2, B1, B2, ecc. Aspose.Cells.GridWeb consente agli sviluppatori di accedere a qualsiasi cella desiderata utilizzando il nome della cella. Basta passare il nome della cella (come un indice) alla collezione Cells di GridWorksheet.

Avviso

Accedere a GridCell usando cells[cellName] può consumare più memoria. Creerà sempre un nuovo oggetto cella (GridCell) indipendentemente dal fatto che la cella sia nulla.

Utilizzo degli indici di riga e colonna

Una cella può anche essere riconosciuta dalla sua posizione in termini di indici di riga e colonna. Basta passare gli indici di riga e colonna di una cella alla collezione Cells di GridWorksheet. Questo approccio è più veloce rispetto al precedente.

Buone Pratiche:

Se vogliamo ottenere il valore della cella o lo stile della cella e non vogliamo eseguire l’operazione di aggiornamento, possiamo utilizzare il metodo CheckCell che restituirà null se la cella non esiste. Questo risparmierà memoria.

   GridCells cells = GridWeb1.ActiveSheet.Cells;
   GridCell cell = cells.CheckCell(1, 1);
   if(cell!=null)
   {
    Console.WriteLine(cell.ToString());
   }

Buone Pratiche:

Iterare sulle celle

se vogliamo accedere a tutte le celle nel foglio di lavoro una per una, possiamo utilizzare iteratori per attraversare le celle esistenti. questo permetterà di risparmiare memoria.

   GridCells cells = GridWeb1.ActiveSheet.Cells;
   foreach (GridCell c in cells)
  {
      Console.WriteLine(c.ToString());
   }

confronta il seguente codice che è cattivo, questo creerà tutti gli oggetti delle celle indipendentemente che siano nulli, causando così problemi di memoria, quindi non usare in questo modo

 GridCells cells = GridWeb1.ActiveSheet.Cells;
 for(int r=0;r< cells.MaxRow;r++)
 {
     for(int c=0;c< cells.MaxColumn; c++)
     {
         Console.WriteLine(cells[r,c].ToString());
     }
 }