この記事では、Excelでピボットテーブルを作成し、Aspose.Cells for .NET-.NET APIを使用してExcelスプレッドシートを作成および操作し、C#でピボットテーブルのデータまたはアイテムをプログラムで並べ替えまたは非表示にする方法を学習します。 MicrosoftExcelを必要とせずに。

Excelのピボットテーブル

物事はデジタル化され、Excelスプレッドシートの生成と操作のための自動化されたソリューションが広く使用されています。 Excelのピボットテーブルは、データの要約と分析に広く使用されています。一方、ピボットテーブルのデータを並べ替えると、Excelスプレッドシートの膨大なデータを重要に検査するのに非常に役立ちます。ピボットテーブルでのデータの並べ替えは、テキスト値の場合はアルファベット順(AZまたはZA)に、数値の場合は最高値から最低値、最低値から最高値に項目を並べ替えるために適用できます。

この記事は、Excelピボットテーブルの重要性に基づいて、次の方法を紹介することを目的としています。

  • Excelでピボットテーブルを作成し、
  • ピボットテーブルを行フィールドの値で並べ替えます。
  • ピボットテーブルを列フィールドの値で並べ替えます。
  • ピボットテーブルの行を非表示にします。

デモンストレーションでは、次のサンプルExcelスプレッドシートを例全体で使用します。

C#のExcelでピボットテーブルを作成する

C#を使用してExcelでピボットテーブルを作成する

まず、Aspose.Cells for .NETを使用してC#でExcelピボットテーブルを作成する方法を確認しましょう。ピボットテーブルを作成したら、行を非表示にし、その列または行フィールドに基づいてデータを並べ替えます。次のコードサンプルは、Excelピボットテーブルを作成する方法を示しています。

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

// 新しく追加されたワークシートの参照を取得する
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// ソースピボットテーブル
// ワークシートへのピボットテーブルの追加
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

//新しく追加されたピボットテーブルのインスタンスへのアクセス
PivotTable pivotTable = pivotTables[index];

// 行の総計を表示しません。
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// 最初のフィールドを行領域にドラッグします。
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;

// 2番目のフィールドを列領域にドラッグします。
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;

// 3番目のフィールドをデータ領域にドラッグします。
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

pivotTable.RefreshData();
pivotTable.CalculateData();
// end of ソースピボットテーブル

//Excelファイルを保存する
wb.Save("output.xlsx");

出力

ASP.NETのExcelでピボットテーブルを作成する

C#の行フィールド値でピボットテーブルを並べ替える

前のセクションでは、Excelスプレッドシートのデータを使用してピボットテーブルを作成しました。次に、別のピボットテーブルを作成し、データに並べ替えを適用します。次のコードサンプルは、ピボットテーブルを「SeaFood」行フィールド値で作成および並べ替えます。

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

// Excelワークシートの参照を取得します。
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// Excelワークシートにピボットテーブルを追加します。
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

// 新しく追加されたピボットテーブルのインスタンスにアクセスします。
PivotTable pivotTable = pivotTables[index];

// 行の総計を表示しません。
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// 最初のフィールドを行領域にドラッグします。
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;

// 2番目のフィールドを列領域にドラッグします。
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;
colField.AutoSortField = 0;

// 3番目のフィールドをデータ領域にドラッグします。
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

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

// Excelファイルを保存します。
wb.Save("output.xlsx");

出力

Excelでピボットテーブルを作成して並べ替える

C#の列フィールド値でピボットテーブルを並べ替える

ピボットテーブルのデータを列フィールドの値で並べ替えることもできます。次のC#コードサンプルは、「28/07/2000」列のフィールド値に並べ替えを適用します。

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

// Excelワークシートの参照を取得します。
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// Excelワークシートにピボットテーブルを追加します。
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

// 新しく追加されたピボットテーブルのインスタンスにアクセスします。
PivotTable pivotTable = pivotTables[index];

// 行の総計を表示しません。
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// 最初のフィールドを行領域にドラッグします。
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;
colField.AutoSortField = 0;

// 2番目のフィールドを列領域にドラッグします。
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;

// 3番目のフィールドをデータ領域にドラッグします。
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

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

// Excelファイルを保存します。
wb.Save("output.xlsx");

出力

Excelのピボットテーブルのデータを非表示にする

C#でピボットテーブルの行を非表示にする

適用する特定の条件に基づいて、Excelピボットテーブルの行を非表示にすることができます。次のコードサンプルは、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;

// 値の降順での並べ替え
PivotField field = pivotTable.RowFields[0];
field.IsAutoSort = true;
field.IsAscendSort = false;
field.AutoSortField = 0;

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

// 値が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();

// Excelファイルを保存する
workbook.Save("PivotTableHideAndSort.xlsx");

.NETベースのアプリケーションでC#を使用してExcelでピボットテーブルを操作する方法の詳細については、Aspose.Cells for .NETのドキュメントを参照してください。ご不明な点やご質問がございましたら、フォーラムまでお問い合わせください。

結論

この記事では、C#を使用してExcelファイルのピボットテーブルを操作する方法を学習しました。特に、C#を使用して、Excelでピボットテーブルを作成し、ピボットテーブルのデータを並べ替えたり非表示にしたりする方法を見てきました。 ドキュメントを使用して、Aspose.Cells for .NETの詳細を調べることができます。

も参照してください