Tạo bảng tổng hợp trong Excel bằng Python

Bảng tổng hợp trong bảng tính Excel được sử dụng để tóm tắt dữ liệu theo cách tương tác. Giả sử, bạn có dữ liệu của một số hóa đơn và bạn muốn lấy tổng số hóa đơn được nhóm theo khách hàng hoặc sản phẩm. Các bảng xoay có tác dụng trong những trường hợp như vậy. Trong bài viết này, bạn sẽ học cách xử lý bảng tổng hợp trong Excel bằng Python. Đặc biệt, bạn sẽ biết cách tạo bảng tổng hợp trong Excel bằng Python. Hơn nữa, chúng tôi sẽ trình bày cách định dạng các ô trong bảng tổng hợp Excel theo lập trình.

Thư viện Python để tạo Pivot Table trong Excel - Tải xuống miễn phí

Aspose.Cells for Python là một thư viện tốc độ cao, được thiết kế để tạo và xử lý các tệp Excel. Chúng tôi sẽ sử dụng thư viện này để tạo bảng tổng hợp trong bảng tính Excel.

Bạn có thể tải xuống gói của nó hoặc cài đặt nó từ PyPI bằng lệnh pip sau.

pip install aspose-cells

Tạo bảng tổng hợp trong Excel bằng Python

Sau đây là các bước để tạo bảng tổng hợp trong Excel bằng Python.

  • Tạo mới hoặc tải tệp Excel hiện có bằng lớp Sổ làm việc.
  • Điền vào trang tính với dữ liệu (tùy chọn).
  • Nhận tập hợp các bảng tổng hợp vào một đối tượng PivotTableCollection bằng cách sử dụng phương thức Worksheet.getPivotTables().
  • Thêm một bảng tổng hợp mới bằng cách sử dụng phương thức PivotTableCollection.add (string, string, string) và lấy tham chiếu của nó trong một đối tượng.
  • Đặt các tùy chọn như tổng tổng, định dạng, v.v.
  • Thêm trường vào vùng bằng phương thức PivotTable.addFieldToArea (int, int).
  • Lưu sổ làm việc bằng phương thức Workbook.save (string).

Mẫu mã sau đây cho thấy cách thêm bảng tổng hợp trong Excel bằng Python.

import jpype
import asposecells

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

# Khởi tạo một đối tượng Workbook
workbook = Workbook()

# Thêm một trang tính mới và lấy tham chiếu của nó
sheetIndex = workbook.getWorksheets().add()
worksheet = workbook.getWorksheets().get(sheetIndex)

# Lấy các ô của trang tính
cells = worksheet.getCells()

# Đặt giá trị cho các ô
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)

# Nhận tất cả Pivot Table
pivotTables = worksheet.getPivotTables()

# Thêm một Pivot Table mới vào trang tính
index = pivotTables.add("=A1:C8", "E3", "PivotTable2")

# Truy cập phiên bản của Pivot Table mới được thêm vào
pivotTable = pivotTables.get(index)

# Ẩn tổng tổng cho các hàng
pivotTable.setRowGrand(False)

# Kéo trường đầu tiên vào vùng hàng
pivotTable.addFieldToArea(PivotFieldType.ROW, 0)

# Kéo trường thứ hai vào vùng cột
pivotTable.addFieldToArea(PivotFieldType.COLUMN, 1)

# Kéo trường thứ ba vào vùng dữ liệu
pivotTable.addFieldToArea(PivotFieldType.DATA, 2)

# Lưu tệp Excel
workbook.save("CreatePivotTable.xlsx")

Dữ liệu Excel

Nguồn dữ liệu cho bảng tổng hợp excel

Bảng tổng hợp

tạo bảng tổng hợp trong excel trong java

Định dạng ô trong bảng tổng hợp Excel bằng Python

Sau đây là các bước để định dạng ô trong bảng tổng hợp Excel bằng Python.

  • Tạo mới hoặc tải tệp Excel hiện có bằng lớp Sổ làm việc.
  • Điền trang tính (tùy chọn).
  • Nhận tham chiếu của trang tính nơi đặt bảng tổng hợp.
  • Nhận tham chiếu của bảng tổng hợp theo chỉ mục bằng cách sử dụng phương thức Worksheet.getPivotTables(). Get (index).
  • Tạo kiểu mới bằng phương thức Workbook.createStyle() và lấy tham chiếu của nó.
  • Đặt thuộc tính mong muốn của đối tượng Kiểu.
  • Gán đối tượng Kiểu cho bảng tổng hợp.
  • Lưu sổ làm việc bằng phương thức Workbook.save (string).

Mẫu mã sau đây cho thấy cách định dạng bảng tổng hợp Excel bằng Python.

import jpype
import asposecells

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

# Tạo đối tượng sổ làm việc từ tệp Excel nguồn có chứa bảng tổng hợp
workbook = Workbook("pivotTable_test.xlsx")

# Truy cập trang tính theo tên của nó
worksheet = workbook.getWorksheets().get("PivotTable")

# Truy cập bảng tổng hợp theo chỉ mục
pivotTable = worksheet.getPivotTables().get(0)

# Tạo một đối tượng kiểu với màu nền là xanh lam nhạt
style = workbook.createStyle()
style.setPattern(BackgroundType.SOLID)
style.setBackgroundColor(Color.getLightBlue())

# Định dạng toàn bộ bảng tổng hợp với màu xanh lam nhạt
pivotTable.formatAll(style)

# Tạo một đối tượng kiểu khác với màu vàng
style = workbook.createStyle()
style.setPattern(BackgroundType.SOLID)
style.setBackgroundColor(Color.getYellow())

# Định dạng các ô của hàng đầu tiên của bảng tổng hợp với màu vàng
columns = [0, 1, 2, 3, 4]
for x in columns:
  pivotTable.format(1, x, style)

# Lưu đối tượng sổ làm việc
workbook.save("output.xlsx")

Thư viện Python để tạo bảng Excel Pivot - Nhận giấy phép miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để sử dụng Aspose.Cells for Python mà không có giới hạn đánh giá.

Sự kết luận

Trong bài viết này, bạn đã học cách tạo bảng tổng hợp trong trang tính Excel bằng Python. Hơn nữa, bạn đã thấy cách định dạng ô trong bảng tổng hợp trong Excel theo chương trình. Bên cạnh đó, bạn có thể khám phá thêm về thư viện Python Excel bằng cách sử dụng tài liệu. Trong trường hợp bạn có bất kỳ câu hỏi nào, vui lòng cho chúng tôi biết qua diễn đàn của chúng tôi.

Xem thêm