یک جدول محوری در اکسل با استفاده از پایتون ایجاد کنید

جداول محوری در صفحات گسترده اکسل برای خلاصه کردن داده ها به روش تعاملی استفاده می شود. فرض کنید، داده‌های تعدادی از فاکتورها را دارید و می‌خواهید مجموع آنها را بر اساس مشتریان یا محصولات گروه‌بندی کنید. جداول محوری در چنین مواردی وارد بازی می شوند. در این مقاله نحوه برخورد با جداول محوری در اکسل در پایتون را خواهید آموخت. به ویژه، با نحوه ایجاد جدول محوری در اکسل در پایتون آشنا خواهید شد. علاوه بر این، نحوه قالب بندی سلول ها در جداول محوری اکسل را به صورت برنامه ای نشان خواهیم داد.

کتابخانه Python برای ایجاد Pivot Table در اکسل - دانلود رایگان

Aspose.Cells for Python یک کتابخانه پرسرعت است که برای ایجاد و پردازش فایل های اکسل طراحی شده است. ما از این کتابخانه برای ایجاد جداول محوری در صفحات گسترده اکسل استفاده خواهیم کرد.

می‌توانید بسته آن را دانلود یا از PyPI با استفاده از دستور pip زیر نصب کنید.

pip install aspose-cells

یک جدول محوری در اکسل در پایتون ایجاد کنید

در زیر مراحل ایجاد جدول محوری در اکسل با استفاده از پایتون آمده است.

  • با استفاده از کلاس Workbook یک فایل اکسل جدید ایجاد کنید یا یک فایل موجود را بارگذاری کنید.
  • کاربرگ را با داده پر کنید (اختیاری).
  • با استفاده از متد Worksheet.getPivotTables() مجموعه ای از جداول محوری را در یک شی PivotTableCollection دریافت کنید.
  • با استفاده از روش PivotTableCollection.add (string, string, string) یک جدول محوری جدید اضافه کنید و مرجع آن را در یک شیء دریافت کنید.
  • گزینه هایی مانند کل کل، قالب بندی و غیره را تنظیم کنید.
  • فیلدها را با استفاده از روش PivotTable.addFieldToArea(int, int) به منطقه اضافه کنید.
  • کتاب کار را با استفاده از روش Workbook.save(string) ذخیره کنید.

نمونه کد زیر نحوه اضافه کردن جدول محوری در اکسل در پایتون را نشان می دهد.

import jpype
import asposecells

jpype.startJVM()
from asposecells.api import Workbook, PivotFieldType

# نمونه سازی یک شی Workbook
workbook = Workbook()

# یک کاربرگ جدید اضافه کنید و مرجع آن را بدست آورید
sheetIndex = workbook.getWorksheets().add()
worksheet = workbook.getWorksheets().get(sheetIndex)

# سلول های کاربرگ را دریافت کنید
cells = worksheet.getCells()

# مقدار را روی سلول ها تنظیم کنید
cell = cells.get("A1")
cell.setValue("Sport")
cell = cells.get("B1")
cell.setValue("Quarter")
cell = cells.get("C1")
cell.setValue("Sales")

cell = cells.get("A2")
cell.setValue("Golf")
cell = cells.get("A3")
cell.setValue("Golf")
cell = cells.get("A4")
cell.setValue("Tennis")
cell = cells.get("A5")
cell.setValue("Tennis")
cell = cells.get("A6")
cell.setValue("Tennis")
cell = cells.get("A7")
cell.setValue("Tennis")
cell = cells.get("A8")
cell.setValue("Golf")

cell = cells.get("B2")
cell.setValue("Qtr3")
cell = cells.get("B3")
cell.setValue("Qtr4")
cell = cells.get("B4")
cell.setValue("Qtr3")
cell = cells.get("B5")
cell.setValue("Qtr4")
cell = cells.get("B6")
cell.setValue("Qtr3")
cell = cells.get("B7")
cell.setValue("Qtr4")
cell = cells.get("B8")
cell.setValue("Qtr3")

cell = cells.get("C2")
cell.setValue(1500)
cell = cells.get("C3")
cell.setValue(2000)
cell = cells.get("C4")
cell.setValue(600)
cell = cells.get("C5")
cell.setValue(1500)
cell = cells.get("C6")
cell.setValue(4070)
cell = cells.get("C7")
cell.setValue(5000)
cell = cells.get("C8")
cell.setValue(6430)

# همه Pivot Tables را دریافت کنید
pivotTables = worksheet.getPivotTables()

# یک Pivot Table جدید به کاربرگ اضافه کنید
index = pivotTables.add("=A1:C8", "E3", "PivotTable2")

# به نمونه Pivot Table جدید اضافه شده دسترسی پیدا کنید
pivotTable = pivotTables.get(index)

# مجموع کل ردیف ها را مخفی کنید
pivotTable.setRowGrand(False)

# اولین فیلد را به ناحیه ردیف بکشید
pivotTable.addFieldToArea(PivotFieldType.ROW, 0)

# فیلد دوم را به ناحیه ستون بکشید
pivotTable.addFieldToArea(PivotFieldType.COLUMN, 1)

# فیلد سوم را به ناحیه داده بکشید
pivotTable.addFieldToArea(PivotFieldType.DATA, 2)

# فایل اکسل را ذخیره کنید
workbook.save("CreatePivotTable.xlsx")

داده های اکسل

منبع داده برای جدول محوری اکسل

جدول محوری

جدول محوری در اکسل در جاوا ایجاد کنید

قالب بندی سلول ها در جداول محوری اکسل در پایتون

در زیر مراحل قالب بندی سلول ها در جداول محوری اکسل در پایتون آمده است.

  • با استفاده از کلاس Workbook یک فایل اکسل جدید ایجاد کنید یا یک فایل موجود را بارگذاری کنید.
  • کاربرگ را پر کنید (اختیاری).
  • دریافت مرجع کاربرگ که در آن جدول محوری قرار دارد.
  • با استفاده از روش Worksheet.getPivotTables().get(index) مرجع جدول محوری را بر اساس فهرست دریافت کنید.
  • با استفاده از متد Workbook.createStyle() استایل جدیدی ایجاد کنید و مرجع آن را دریافت کنید.
  • ویژگی های دلخواه شی Style را تنظیم کنید.
  • شیء Style را به جدول محوری اختصاص دهید.
  • کتاب کار را با استفاده از روش Workbook.save(string) ذخیره کنید.

نمونه کد زیر نحوه قالب بندی جدول محوری اکسل در پایتون را نشان می دهد.

import jpype
import asposecells

jpype.startJVM()
from asposecells.api import Workbook, BackgroundType, Color

# شیء کتاب کار را از فایل اکسل منبع حاوی جدول محوری ایجاد کنید
workbook = Workbook("pivotTable_test.xlsx")

# به کاربرگ با نام آن دسترسی پیدا کنید
worksheet = workbook.getWorksheets().get("PivotTable")

# به جدول محوری بر اساس فهرست دسترسی پیدا کنید
pivotTable = worksheet.getPivotTables().get(0)

# یک شیء سبک با رنگ پس زمینه آبی روشن ایجاد کنید
style = workbook.createStyle()
style.setPattern(BackgroundType.SOLID)
style.setBackgroundColor(Color.getLightBlue())

# کل جدول محوری را با رنگ آبی روشن قالب بندی کنید
pivotTable.formatAll(style)

# یک شی سبک دیگر با رنگ زرد ایجاد کنید
style = workbook.createStyle()
style.setPattern(BackgroundType.SOLID)
style.setBackgroundColor(Color.getYellow())

# سلول های ردیف اول جدول محوری را با رنگ زرد قالب بندی کنید
columns = [0, 1, 2, 3, 4]
for x in columns:
  pivotTable.format(1, x, style)

# شیء کتاب کار را ذخیره کنید
workbook.save("output.xlsx")

کتابخانه پایتون برای ایجاد جداول محوری اکسل - مجوز رایگان دریافت کنید

برای استفاده از Aspose.Cells برای پایتون بدون محدودیت ارزیابی، می‌توانید یک مجوز موقت رایگان دریافت کنید.

نتیجه

در این مقاله نحوه ایجاد جدول محوری در برگه های اکسل در پایتون را یاد گرفتید. علاوه بر این، نحوه قالب بندی سلول ها در جداول محوری در اکسل را به صورت برنامه نویسی دیده اید. علاوه بر این، می‌توانید با استفاده از مستندات اطلاعات بیشتری درباره کتابخانه Python Excel داشته باشید. در صورت داشتن هرگونه سوال، از طریق [فروم 19 ما با ما در میان بگذارید.

همچنین ببینید