In questo articolo imparerai come creare una tabella pivot in Excel e ordinare o nascondere i dati o gli elementi della tabella pivot a livello di codice in C# usando Aspose.Cells for .NET - API .NET per creare e manipolare fogli di calcolo di Excel senza richiedere Microsoft Excel.

Tabelle pivot in Excel

Le cose sono diventate digitali e le soluzioni automatizzate per la generazione e la manipolazione di fogli di calcolo Excel sono ampiamente utilizzate. Le tabelle pivot in Excel sono ampiamente utilizzate per riassumere e analizzare i dati. Considerando che l’ordinamento dei dati nelle tabelle pivot è molto utile per l’ispezione critica dei dati enormi nei fogli di calcolo di Excel. L’ordinamento dei dati nelle tabelle pivot può essere applicato per disporre gli elementi in ordine alfabetico (AZ o ZA) per i valori di testo o dal valore più alto al più basso o dal più basso al più alto in caso di numeri.

Basato sull’importanza delle tabelle pivot di Excel, questo articolo mira a mostrarti come:

  • creare una tabella pivot in Excel,
  • ordina la tabella pivot per valori di campo riga,
  • ordina la tabella pivot in base ai valori dei campi della colonna,
  • e nascondi le righe della tabella pivot.

Per la dimostrazione, negli esempi verrà utilizzato il seguente foglio di calcolo Excel di esempio.

Crea tabella pivot in Excel in C#

Crea una tabella pivot in Excel usando C#

Diamo prima un’occhiata a come creare una tabella pivot di Excel in C# usando Aspose.Cells per .NET. Una volta creata la tabella pivot, nasconderemo le righe e ordineremo i dati in base alla sua colonna o ai campi di riga. Nell’esempio di codice seguente viene illustrato come creare una tabella pivot di Excel.

Workbook wb = new Workbook("SampleExcel.xlsx");

// Ottenere il riferimento del foglio di lavoro appena aggiunto
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// tabella pivot di origine
// Aggiunta di una tabella pivot al foglio di lavoro
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

//Accesso all'istanza della tabella pivot appena aggiunta
PivotTable pivotTable = pivotTables[index];

// Non mostrare i totali complessivi per le righe.
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// Trascinando il primo campo nell'area della riga.
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;

// Trascinando il secondo campo nell'area della colonna.
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;

// Trascinando il terzo campo nell'area dati.
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

pivotTable.RefreshData();
pivotTable.CalculateData();
// end of tabella pivot di origine

//Salvataggio del file Excel
wb.Save("output.xlsx");

Produzione

Crea tabella pivot in Excel in ASP.NET

Ordina la tabella pivot per valori di campo riga in C#

Nella sezione precedente, abbiamo semplicemente creato la tabella pivot utilizzando i dati nel foglio di calcolo di Excel. Ora creeremo un’altra tabella pivot e applicheremo l’ordinamento ai dati. L’esempio di codice seguente crea e ordina la tabella pivot in base ai valori del campo di riga “SeaFood”.

Workbook wb = new Workbook("SampleExcel.xlsx");

// Ottenere il riferimento del foglio di lavoro Excel.
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// Aggiunta di una tabella pivot al foglio di lavoro di Excel.
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

// Accesso all'istanza della tabella pivot appena aggiunta.
PivotTable pivotTable = pivotTables[index];

// Non mostrare i totali complessivi per le righe.
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// Trascinando il primo campo nell'area della riga.
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;

// Trascinando il secondo campo nell'area della colonna.
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;
colField.AutoSortField = 0;

// Trascinando il terzo campo nell'area dati.
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

pivotTable.RefreshData();
pivotTable.CalculateData();

// Salvataggio del file Excel.
wb.Save("output.xlsx");

Produzione

Crea e ordina una tabella pivot in Excel

Ordina la tabella pivot in base ai valori dei campi della colonna in C#

Puoi anche ordinare i dati in una tabella pivot in base ai valori del campo della colonna. L’esempio di codice C# seguente applica l’ordinamento sui valori di campo della colonna “28/07/2000”.

Workbook wb = new Workbook("SampleExcel.xlsx");

// Ottenere il riferimento del foglio di lavoro Excel.
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// Aggiunta di una tabella pivot al foglio di lavoro di Excel.
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

// Accesso all'istanza della tabella pivot appena aggiunta.
PivotTable pivotTable = pivotTables[index];

// Non mostrare i totali complessivi per le righe.
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// Trascinando il primo campo nell'area della riga.
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;
colField.AutoSortField = 0;

// Trascinando il secondo campo nell'area della colonna.
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;

// Trascinando il terzo campo nell'area dati.
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

pivotTable.RefreshData();
pivotTable.CalculateData();

// Salvataggio del file Excel.
wb.Save("output.xlsx");

Produzione

Nascondi i dati nella tabella pivot in Excel

Nascondi le righe della tabella pivot in C#

Puoi nascondere le righe nella tabella pivot di Excel in base a determinate condizioni che desideri applicare. Nell’esempio di codice seguente viene illustrato come nascondere determinate righe nella tabella pivot usando C#.

Workbook workbook = new Workbook("output.xlsx");
Worksheet worksheet = workbook.Worksheets[0];

var pivotTable = worksheet.PivotTables[0];
var dataBodyRange = pivotTable.DataBodyRange;
int currentRow = 1;
int rowsUsed = dataBodyRange.EndRow;

// Ordinamento dei valori in ordine decrescente
PivotField field = pivotTable.RowFields[0];
field.IsAutoSort = true;
field.IsAscendSort = false;
field.AutoSortField = 0;

pivotTable.RefreshData();
pivotTable.CalculateData();

// Nascondere le righe con valore inferiore a 15
while (currentRow < rowsUsed)
{
	Cell cell = worksheet.Cells[currentRow, 2];
	double score = Convert.ToDouble(cell.Value);
	if (score < 15)
	{
		worksheet.Cells.HideRow(currentRow);
	}
	currentRow++;
}

pivotTable.RefreshData();
pivotTable.CalculateData();

// Salvataggio del file Excel
workbook.Save("PivotTableHideAndSort.xlsx");

Dai un’occhiata alla documentazione di Aspose.Cells per .NET per maggiori dettagli su come lavorare con le tabelle pivot in Excel usando C# in qualsiasi applicazione basata su .NET. Contattaci al nostro forum in caso di domande o domande.

Conclusione

In questo articolo hai imparato a lavorare con le tabelle pivot nei file di Excel usando C#. In particolare, hai visto come creare tabelle pivot e ordinare o nascondere i dati nelle tabelle pivot in Excel usando C#. Puoi esplorare di più su Aspose.Cells per .NET usando documentazione.

Guarda anche