در این مقاله، نحوه ایجاد Pivot Table در اکسل در سی شارپ را خواهید آموخت. همچنین، نحوه مرتبسازی یا پنهان کردن دادههای Pivot Table به صورت برنامهنویسی با استفاده از Aspose.Cells for .NET - یک API .NET برای ایجاد و دستکاری صفحات گسترده اکسل بدون نیاز به مایکروسافت اکسل را توضیح خواهیم داد.
جداول محوری در اکسل
همه چیز پیش رفته است راه حل های دیجیتال و خودکار برای تولید و دستکاری صفحات گسترده اکسل به طور گسترده استفاده می شود. جداول محوری در اکسل به طور گسترده برای خلاصه کردن و تجزیه و تحلیل داده ها استفاده می شود. در حالی که مرتب سازی داده ها در جداول محوری برای بازرسی انتقادی داده های عظیم در صفحات گسترده اکسل بسیار مفید است. مرتبسازی دادهها در جداول محوری را میتوان برای مرتب کردن موارد بر اساس حروف الفبا (AZ یا ZA) برای مقادیر متنی یا از بالاترین به پایینترین یا پایینترین به بالاترین مقادیر در صورت اعداد اعمال کرد.
بر اساس اهمیت جدول محوری اکسل، این مقاله قصد دارد به شما نشان دهد که چگونه:
- ایجاد یک Pivot Table در اکسل از طریق C#،
- مرتب سازی Pivot Table بر اساس مقادیر فیلد ردیفی،
- مرتب سازی Pivot Table بر اساس مقادیر فیلد ستونی،
- و ردیف های Pivot Table را مخفی کنید.
برای نمایش، از نمونه صفحه گسترده اکسل زیر در سراسر مثال ها استفاده خواهد شد.
ایجاد یک جدول محوری در اکسل در سی شارپ
بیایید ابتدا نحوه ایجاد یک جدول محوری Excel در سی شارپ را با استفاده از Aspose.Cells برای دات نت بررسی کنیم. هنگامی که جدول محوری را ایجاد کردیم، سطرها را پنهان می کنیم و داده ها را بر اساس ستون یا فیلدهای ردیف آن مرتب می کنیم. نمونه کد زیر نحوه ایجاد یک جدول محوری اکسل را نشان می دهد.
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
//ذخیره فایل اکسل
wb.Save("output.xlsx");
خروجی
C# جدول محوری اکسل را بر اساس ردیف ایجاد و مرتب کنید
در بخش قبل، ما به سادگی با استفاده از داده های صفحه گسترده اکسل، Pivot Table را ایجاد کردیم. اکنون، یک Pivot Table دیگر ایجاد می کنیم و مرتب سازی را روی داده ها اعمال می کنیم. نمونه کد زیر، PivotTable را بر اساس مقادیر فیلد ردیف “Seafood” ایجاد و مرتب می کند.
Workbook wb = new Workbook("SampleExcel.xlsx");
// به دست آوردن مرجع کاربرگ اکسل.
Worksheet sheet = wb.Worksheets[0];
PivotTableCollection pivotTables = sheet.PivotTables;
// اضافه کردن 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;
colField.AutoSortField = 0;
// کشیدن فیلد سوم به ناحیه داده.
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);
pivotTable.RefreshData();
pivotTable.CalculateData();
// ذخیره فایل اکسل
wb.Save("output.xlsx");
خروجی
مرتب سازی جدول محوری اکسل بر اساس ستون در سی شارپ
همچنین می توانید داده ها را در یک Pivot Table بر اساس مقادیر فیلد ستون مرتب کنید. نمونه کد C# زیر مرتبسازی بر روی مقادیر فیلد ستون “28/07/2000” را اعمال میکند.
Workbook wb = new Workbook("SampleExcel.xlsx");
// به دست آوردن مرجع کاربرگ اکسل.
Worksheet sheet = wb.Worksheets[0];
PivotTableCollection pivotTables = sheet.PivotTables;
// اضافه کردن 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;
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();
// ذخیره فایل اکسل
wb.Save("output.xlsx");
خروجی
مخفی کردن ردیف های جدول محوری در اکسل در سی شارپ
میتوانید ردیفها را در جدول محوری اکسل بر اساس شرایط خاصی که میخواهید اعمال کنید، پنهان کنید. نمونه کد زیر نشان می دهد که چگونه ردیف های خاصی را در 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();
// ذخیره فایل اکسل
workbook.Save("PivotTableHideAndSort.xlsx");
برای جزئیات بیشتر در مورد نحوه کار با Pivot Tables در اکسل با استفاده از C# در هر برنامه مبتنی بر NET، به اسناد Aspose.Cells برای دات نت نگاهی بیندازید. در صورت هر گونه سوال یا پرس و جو با ما در تالار گفتمان تماس بگیرید.
نتیجه
در این مقاله نحوه ایجاد جداول محوری در فایل های اکسل با استفاده از سی شارپ را یاد گرفتید. علاوه بر این، نحوه مرتب سازی یا پنهان کردن داده ها در جداول محوری در اکسل را با استفاده از C# مشاهده کرده اید. می توانید با استفاده از documentation درباره Aspose.Cells برای دات نت بیشتر کاوش کنید.