In questo articolo, spiegherò come eliminare righe e colonne vuote in un file excel usando C#. Spiegherò anche come aggiornare automaticamente i riferimenti (utilizzati in formule, grafici e tabelle) eliminando righe e colonne vuote.

API C# per rimuovere righe e colonne vuote

Aspose.Cells for .NET è una nota API di manipolazione del foglio di calcolo che ti consente di creare ed elaborare file Excel dall’interno delle tue applicazioni .NET. L’API consente di rimuovere righe e colonne vuote nei file Excel in poche righe di codice. Puoi scaricare i binari dell’API o installarlo utilizzando NuGet.

PM> Install-Package Aspose.Cells

Elimina righe vuote in Excel usando C#

Di seguito sono riportati i passaggi per eliminare tutte le righe vuote in Excel utilizzando C#.

  • Aprire un file Excel utilizzando l’oggetto Cartella di lavoro.
  • Accedi al foglio di lavoro che contiene le righe vuote. È possibile accedere al foglio di lavoro per indice (a base zero) o per nome.
  • Chiama il metodo Cells.DeleteBlankRows() per eliminare tutte le righe vuote che non contengono dati.

Il codice di esempio seguente mostra come rimuovere le righe vuote in Excel usando C#.

using Aspose.Cells;

// Apri un file excel esistente.
Workbook wb = new Workbook("SampleInput.xlsx");

// Ottieni la raccolta di fogli di lavoro nel foglio di calcolo.
WorksheetCollection sheets = wb.Worksheets;

// Ottieni il primo foglio di lavoro da WorksheetCollection per indice.
Worksheet sheet = sheets[0];
// O per nome.
// Foglio di lavoro = fogli["Foglio1"];

// Elimina le righe vuote dal foglio di lavoro.
sheet.Cells.DeleteBlankRows();

// Salva il file excel.
wb.Save("SampleOutput.xlsx");
Elimina righe vuote

Fig 1: Elimina le righe vuote

Si noti che il metodo Cells.DeleteBlankRows rimuove le righe vuote anche se viene applicata una sorta di formattazione. Rimuove anche le righe vuote formattate sotto i tuoi dati.

Elimina righe vuote formattate

Fig 2: Elimina le righe vuote formattate

Se desideri eliminare righe vuote da tutti i fogli di lavoro in un documento Excel, esegui semplicemente un’iterazione su WorksheetCollection e chiama il metodo DeleteBlankRows su ciascun foglio di lavoro come mostrato nel codice seguente:

// Apri un file excel esistente.
Workbook workbook = new Workbook("SampleInput.xlsx");

// Iterare sui fogli di lavoro.
foreach (Worksheet sheet in workbook.Worksheets)
{
    // Elimina le righe vuote dal foglio di lavoro.
    sheet.Cells.DeleteBlankRows();
}

// Salva il file excel.
workbook.Save("SampleOutput.xlsx");

Aggiorna i riferimenti automaticamente durante l’eliminazione di righe vuote

L’eliminazione di righe vuote può interrompere i riferimenti in formule, grafici e tabelle. Ad esempio, la cella B2 nel secondo foglio di lavoro ha una formula =Foglio1!C3 che si riferisce alla cella C3 nel primo foglio di lavoro, come mostrato nella figura seguente.

Una cella in Foglio2 fa riferimento a un valore in Foglio1.

Fig 3: una cella in Foglio2 fa riferimento a un valore in Foglio1.

Se rimuoviamo le righe vuote in Sheet1, il valore lima@gmail.com si sposterà nella cella C1. Ma la formula (=Foglio1!C3) non si aggiornerà e la cella B2 conterrà un valore non valido come mostrato di seguito.

Dopo aver rimosso le righe vuote, la formula nella cella B2 non è stata aggiornata.

Fig 4: dopo aver rimosso le righe vuote, la formula nella cella B2 non è stata aggiornata.

Possiamo evitare questo problema usando la proprietà DeleteOptions.UpdateReference e impostandola su true. Garantirà che i riferimenti vengano aggiornati durante l’eliminazione delle righe vuote. Il codice di esempio seguente illustra come utilizzare la proprietà DeleteOptions.UpdateReference.

// Apri un file excel esistente.
Workbook wb = new Workbook("SampleInput.xlsx");

// Ottieni la raccolta di fogli di lavoro nel foglio di calcolo.
WorksheetCollection sheets = wb.Worksheets;

// Ottieni il primo foglio di lavoro da WorksheetCollection per indice.
Worksheet sheet = sheets[0];

// Questa opzione garantirà i riferimenti (in formule, grafici)
// vengono aggiornati durante l'eliminazione di righe vuote.
DeleteOptions options = new DeleteOptions();
options.UpdateReference = true;

// Elimina le righe vuote dal foglio di lavoro.
sheet.Cells.DeleteBlankRows(options);

// Salva il file excel.
wb.Save("SampleOutput.xlsx");

Come mostrato nell’immagine seguente, la formula è stata aggiornata e la cella B2 contiene un valore valido.

La formula è stata aggiornata e la cella contiene un valore valido.

Fig 5: La formula è stata aggiornata e la cella contiene un valore valido.

Elimina colonne vuote in Excel usando C#

I passaggi per eliminare le colonne vuote sono gli stessi dell’eliminazione delle righe vuote. Usiamo il metodo Cells.DeleteBlankColumns per eliminare tutte le colonne vuote che non contengono dati. Il codice di esempio seguente mostra come eliminare righe e colonne vuote in C#.

// Apri un file excel esistente.
Workbook wb = new Workbook("SampleInput.xlsx");

// Ottieni la raccolta di fogli di lavoro nel foglio di calcolo.
WorksheetCollection sheets = wb.Worksheets;

// Ottieni il primo foglio di lavoro da WorksheetCollection per indice.
Worksheet sheet = sheets[0];

// Questa opzione garantirà i riferimenti (in formule, grafici)
// vengono aggiornati durante l'eliminazione di righe e colonne vuote.
DeleteOptions options = new DeleteOptions();
options.UpdateReference = true;

// Elimina le righe e le colonne vuote.
sheet.Cells.DeleteBlankRows(options);
sheet.Cells.DeleteBlankColumns(options);

// Calcola le formule della cartella di lavoro
wb.CalculateFormula();

// Salva il file excel.
wb.Save("SampleOutput.xlsx");
Elimina righe e colonne vuote

Fig 6: Elimina righe e colonne vuote

Conclusione

In questo articolo, hai imparato come eliminare righe e colonne vuote nel file Excel usando C#. Inoltre, hai imparato come aggiornare automaticamente i riferimenti (usati in formule, grafici e tabelle) eliminando righe e colonne vuote. Si prega di controllare la documentazione di Aspose.Cells per .NET per ulteriori informazioni. In caso di domande, non esitare a pubblicarle nel nostro Forum di supporto. Risponderemo in poche ore.

Guarda anche