ในบทความนี้ คุณจะได้เรียนรู้วิธีสร้าง 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#
ก่อนอื่นมาดูวิธีสร้าง 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");
เอาต์พุต
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");
เอาต์พุต
จัดเรียง 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 ใน 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 โดยใช้ เอกสารประกอบ