Создайте сводную таблицу в Excel с помощью Python

Сводные таблицы в электронных таблицах Excel используются для интерактивного обобщения данных. Предположим, у вас есть данные нескольких счетов-фактур, и вы хотите получить их общую сумму, сгруппированную по клиентам или продуктам. В таких случаях в игру вступают сводные таблицы. В этой статье вы узнаете, как работать со сводными таблицами в Excel на Python. В частности, вы узнаете, как создать сводную таблицу в Excel на Python. Кроме того, мы продемонстрируем, как программно форматировать ячейки в сводных таблицах Excel.

Библиотека Python для создания сводной таблицы в Excel — бесплатная загрузка

Aspose.Cells for Python — это высокоскоростная библиотека, предназначенная для создания и обработки файлов Excel. Мы будем использовать эту библиотеку для создания сводных таблиц в электронных таблицах Excel.

Вы можете скачать его пакет или установить его из PyPI, используя следующую команду pip.

pip install aspose-cells

Создайте сводную таблицу в Excel на Python

Ниже приведены шаги по созданию сводной таблицы в Excel с использованием Python.

  • Создайте новый или загрузите существующий файл Excel с помощью класса Workbook.
  • Заполните рабочий лист данными (необязательно).
  • Получить коллекцию сводных таблиц в объект PivotTableCollection с помощью метода Worksheet.getPivotTables().
  • Добавьте новую сводную таблицу с помощью метода PivotTableCollection.add(string, string, string) и получите ссылку на нее в объекте.
  • Установите такие параметры, как общий итог, форматирование и т. д.
  • Добавьте поля в область, используя метод PivotTable.addFieldToArea(int, int).
  • Сохраните книгу с помощью метода Workbook.save(string).

В следующем примере кода показано, как добавить сводную таблицу в Excel на Python.

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)

# Получить все сводные таблицы
pivotTables = worksheet.getPivotTables()

# Добавьте новую сводную таблицу на лист
index = pivotTables.add("=A1:C8", "E3", "PivotTable2")

# Доступ к экземпляру недавно добавленной сводной таблицы
pivotTable = pivotTables.get(index)

# Скрыть общие итоги для строк
pivotTable.setRowGrand(False)

# Перетащите первое поле в область строк
pivotTable.addFieldToArea(PivotFieldType.ROW, 0)

# Перетащите второе поле в область столбца
pivotTable.addFieldToArea(PivotFieldType.COLUMN, 1)

# Перетащите третье поле в область данных
pivotTable.addFieldToArea(PivotFieldType.DATA, 2)

# Сохраните файл Excel
workbook.save("CreatePivotTable.xlsx")

Данные Excel

Источник данных для сводной таблицы excel

Сводная таблица

создать сводную таблицу в excel на java

Форматирование ячеек в сводных таблицах Excel в Python

Ниже приведены шаги для форматирования ячеек в сводных таблицах Excel в Python.

  • Создайте новый или загрузите существующий файл Excel с помощью класса Workbook.
  • Заполните рабочий лист (необязательно).
  • Получите ссылку на рабочий лист, где находится сводная таблица.
  • Получите ссылку на сводную таблицу по индексу, используя метод Worksheet.getPivotTables().get(index).
  • Создайте новый стиль с помощью метода Workbook.createStyle() и получите его ссылку.
  • Установите желаемые свойства объекта Style.
  • Назначьте объект Style сводной таблице.
  • Сохраните книгу с помощью метода Workbook.save(string).

В следующем примере кода показано, как отформатировать сводную таблицу Excel в Python.

import jpype
import asposecells

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

# Создать объект книги из исходного файла Excel, содержащего сводную таблицу
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")

Библиотека Python для создания сводных таблиц Excel — бесплатная лицензия

Вы можете получить бесплатную временную лицензию для использования Aspose.Cells for Python без ограничений на пробную версию.

Вывод

В этой статье вы узнали, как создать сводную таблицу на листах Excel в Python. Кроме того, вы видели, как программно форматировать ячейки в сводных таблицах Excel. Кроме того, вы можете узнать больше о библиотеке Python Excel, используя документацию. Если у вас возникнут какие-либо вопросы, сообщите нам об этом через наш форум.

Смотрите также