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