ในบทความนี้ คุณจะได้เรียนรู้วิธีสร้าง Pivot Table ใน Excel ใน C# นอกจากนี้ เราจะกล่าวถึงวิธีการจัดเรียงหรือซ่อนข้อมูล Pivot Table โดยทางโปรแกรมโดยใช้ Aspose.Cells for .NET ซึ่งเป็น .NET API เพื่อสร้างและจัดการสเปรดชีต Excel โดยไม่ต้องใช้ Microsoft Excel

Pivot Table ใน Excel

สิ่งต่างๆ ได้เปลี่ยนไปใช้โซลูชันแบบดิจิทัลและแบบอัตโนมัติสำหรับการสร้างและการจัดการสเปรดชีต Excel อย่างแพร่หลาย Pivot Tables ใน Excel ถูกนำมาใช้อย่างกว้างขวางเพื่อสรุปและวิเคราะห์ข้อมูล ในขณะที่การจัดเรียงข้อมูลใน Pivot Table นั้นมีประโยชน์มากสำหรับการตรวจสอบข้อมูลขนาดใหญ่ในสเปรดชีต Excel ที่สำคัญ การเรียงลำดับข้อมูลใน Pivot Table สามารถนำไปใช้ในการจัดเรียงรายการตามตัวอักษร (AZ หรือ ZA) สำหรับค่าข้อความ หรือจากค่าสูงสุดไปต่ำสุดหรือค่าต่ำสุดถึงสูงสุดในกรณีของตัวเลข

ตามความสำคัญของตาราง Pivot ของ Excel บทความนี้มีวัตถุประสงค์เพื่อแสดงวิธีการ:

  • สร้าง Pivot Table ใน Excel ผ่าน C#
  • จัดเรียง Pivot Table ตามค่าฟิลด์แถว
  • จัดเรียง Pivot Table ตามค่าฟิลด์คอลัมน์
  • และซ่อนแถว Pivot Table

สำหรับการสาธิต จะใช้สเปรดชีต Excel ตัวอย่างต่อไปนี้ตลอดทั้งตัวอย่าง

สร้าง Pivot Table ใน Excel ใน C#

สร้าง Pivot Table ใน Excel ใน C#

ก่อนอื่นมาดูวิธีสร้าง Excel Pivot Table ใน C# โดยใช้ Aspose.Cells สำหรับ .NET เมื่อเราสร้าง Pivot Table แล้ว เราจะซ่อนแถวและจัดเรียงข้อมูลตามคอลัมน์หรือฟิลด์แถว ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างตาราง Pivot ของ Excel

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

// รับข้อมูลอ้างอิงของเวิร์กชีตที่เพิ่มใหม่
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// ที่มา PivotTable
// การเพิ่ม PivotTable ลงในแผ่นงาน
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

//การเข้าถึงอินสแตนซ์ของ PivotTable ที่เพิ่มเข้ามาใหม่
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;

// การลากฟิลด์ที่สองไปยังพื้นที่คอลัมน์
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;

// การลากฟิลด์ที่สามไปยังพื้นที่ข้อมูล
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

pivotTable.RefreshData();
pivotTable.CalculateData();
// end of ที่มา PivotTable

//การบันทึกไฟล์ Excel
wb.Save("output.xlsx");

เอาต์พุต

สร้าง Pivot Table ใน Excel ใน ASP.NET

C# สร้างและจัดเรียง Excel Pivot Table ตามแถว

ในส่วนก่อนหน้านี้ เราเพียงแค่สร้าง Pivot Table โดยใช้ข้อมูลในสเปรดชีต Excel ตอนนี้ เราจะสร้าง Pivot Table ใหม่และใช้การเรียงลำดับกับข้อมูล ตัวอย่างโค้ดต่อไปนี้สร้างและเรียงลำดับ PivotTable ตามค่าเขตข้อมูลแถว “SeaFood”

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

// การรับข้อมูลอ้างอิงของแผ่นงาน Excel
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// การเพิ่ม PivotTable ลงในแผ่นงาน Excel
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

// การเข้าถึงอินสแตนซ์ของ PivotTable ที่เพิ่มเข้ามาใหม่
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;

// การลากฟิลด์ที่สองไปยังพื้นที่คอลัมน์
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;
colField.AutoSortField = 0;

// การลากฟิลด์ที่สามไปยังพื้นที่ข้อมูล
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

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

// การบันทึกไฟล์ Excel
wb.Save("output.xlsx");

เอาต์พุต

สร้างและจัดเรียง Pivot Table ใน Excel

จัดเรียง Excel Pivot Table ตามคอลัมน์ใน C#

คุณยังสามารถจัดเรียงข้อมูลในตาราง Pivot ตามค่าเขตข้อมูลของคอลัมน์ได้อีกด้วย ตัวอย่างโค้ด C# ต่อไปนี้ใช้การเรียงลำดับตามค่าฟิลด์ของคอลัมน์ “28/07/2000”

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

// การรับข้อมูลอ้างอิงของแผ่นงาน Excel
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// การเพิ่ม PivotTable ลงในแผ่นงาน Excel
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

// การเข้าถึงอินสแตนซ์ของ PivotTable ที่เพิ่มเข้ามาใหม่
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;

// การลากฟิลด์ที่สองไปยังพื้นที่คอลัมน์
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;

// การลากฟิลด์ที่สามไปยังพื้นที่ข้อมูล
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

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

// การบันทึกไฟล์ Excel
wb.Save("output.xlsx");

เอาต์พุต

ซ่อนข้อมูลใน Pivot Table ใน Excel

ซ่อนแถว Pivot Table ใน Excel ใน C#

คุณสามารถซ่อนแถวในตาราง Pivot ของ Excel ได้ตามเงื่อนไขที่คุณต้องการนำไปใช้ ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการซ่อนแถวเฉพาะใน Pivot Table โดยใช้ 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");

ดู เอกสารประกอบ ของ Aspose.Cells สำหรับ .NET สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการทำงานกับ Pivot Tables ใน Excel โดยใช้ C# ในแอปพลิเคชันที่ใช้ .NET ติดต่อเราได้ที่ ฟอรัม ในกรณีที่มีคำถามหรือข้อสงสัยใดๆ

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีสร้างตารางเดือยในไฟล์ Excel โดยใช้ C# นอกจากนี้ คุณได้เห็นวิธีการจัดเรียงหรือซ่อนข้อมูลในตารางเดือยใน Excel โดยใช้ C# คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับ Aspose.Cells สำหรับ .NET โดยใช้ เอกสารประกอบ

ดูสิ่งนี้ด้วย