Pivots с помощью Pyexcelerator / XLRD
-
01-10-2019 - |
Вопрос
Как я могу пойти в создание рабочего листа (в рабочей книге Excel) с таблицей Pivot, используя Python Libs, как Pyexcelerator / XLRD? Мне нужно создать ежедневный отчет, который имеет таблицу с поворотом для суммирования данных на других листах. Один вариант будет иметь пустой шаблон, который я копирую и заполнил данные. В этом случае есть ли способ освежить поворот от кода? Любые другие предложения?
Решение
Пожалуйста, уточните (редактируя свой вопрос), является ли «лист», является сокращением «электронной таблицы» и означает целый файл XLS, или он является аббревиатурой «Рабочий лист», компонент «рабочей книги».
Если по «Pivot Table» вы имеете в виду механизм Excel, вы не повезли, потому что это может быть создано только Excel. Однако, если вы имеете в виду «перекрестную вкладку», которую вы создаете самим собой, используя Python и соответствующую библиотеку, вы можете сделать это, используя трио XLRD, XLWT и XLUTILS.
XLRD Вы, кажется, знаете о.
XLWT - это вилка Pyexcelerator с фиксированными ошибками и несколькими улучшениями. Pyexcelerator, кажется, не поддерживается.
xlutils - это пакет коммунальных модулей. Xlutils.Copy можно использовать для создания объекта рабочей книги XLWT из объекта книги XLRD, чтобы вы могли внести изменения в рабочую книгу XLWT и сохранить его в файл.
Вот твой One-Stop-магазин для получения дополнительной информации о трех пакетах, вместе с учебником и ссылками с списком Google Group / рассылки, который вы можете использовать, чтобы получить помощь.
Другие советы
Постарайтесь взглянуть на это: Python: Обновить PivOltables в листе
Если вы выясните, как создать поворотные таблицы, вы можете использовать мой код для их обновления
Я не верю, что вы можете программически добавить таблицу Pivot, используя xlwt
.
Но ваш второй подход (заполнение предварительно настроенной рабочей книги) кажется разумным.
Вы можете обновить таблицу Pivot с помощью макроса VBA в рабочей книге шаблона. Сделать это автоматически, создать WorkBook_Open
обработчик события.
Код VBA для обновления таблицы Pivot:
Sheet1.PivotTables(1).PivotCache.Refresh