Плагин Excel Export для Cotonti CMF

"Excel Export" позволяет безопасно экспортировать данные из любой таблицы базы данных в Excel (XLSX). Выбор полей, кастомные заголовки, лимит строк, работа без Composer, поддержка PHP 8.4

Опубликовано в: Модули и Плагины для Cotonti

Плагин Excel Export для Cotonti CMF

Профессиональный обзор, архитектура и практическое руководство

Введение

Плагин Excel Export - это контролируемое решение, инструмент для экспорта данных из любой таблицы базы данных Cotonti непосредственно в формат Microsoft Excel (XLSX), в удобные для анализа или обмена данными, используя традиционные форматы файлов.

Данный плагин ориентирован на административное использование и предназначен для разработчиков, администраторов сайтов и технических специалистов, которым требуется регулярный или разовый экспорт структурированных данных без привлечения внешних скриптов или прямого доступа к базе данных.


Назначение плагина

Основное назначение плагина Excel Export — экспорт данных из заданной таблицы базы данных Cotonti CMF в файл Excel с возможностью:

  • выбора конкретных полей таблицы;
  • задания пользовательских названий колонок в Excel;
  • ограничения количества экспортируемых строк;
  • повторного скачивания ранее сгенерированных файлов;
  • работы без Composer и без зависимости от системных автозагрузчиков.

Плагин не занимается импортом данных, не изменяет структуру таблиц и не вмешивается в бизнес-логику модулей Cotonti. Он работает исключительно в режиме чтения данных.


Совместимость и требования

Плагин excel_export разработан и протестирован в следующей среде:

  • Cotonti CMF версии 0.9.26
  • PHP версии 8.4 и выше
  • MySQL версии 8.0
  • PhpSpreadsheet версии 1.23.0, подключённой локально, без Composer

Использование сторонних библиотек реализовано через собственные автозагрузчики, что делает плагин автономным и независимым от глобальной конфигурации проекта.


Архитектура плагина

Плагин состоит из нескольких логически разделённых компонентов, каждый из которых отвечает за отдельную часть функциональности.

Конфигурационный и установочный уровень

Файл установки регистрирует плагин в системе Cotonti, описывает его метаданные и объявляет конфигурационные параметры. Ключевыми параметрами являются:

  • целевая таблица базы данных, из которой будет происходить экспорт;
  • максимальное количество строк для выгрузки за одну операцию.

Эти параметры задаются через стандартный интерфейс конфигурации плагинов Cotonti и используются во всех последующих этапах работы.


Функциональный уровень: экспорт данных

Основная логика экспорта сосредоточена в отдельном функциональном файле, что соответствует хорошей практике разделения ответственности.

На этом уровне реализованы:

  • инициализация путей к сторонним библиотекам;
  • собственные автозагрузчики для PhpSpreadsheet и её зависимостей;
  • централизованная система логирования;
  • функция, выполняющая полный цикл экспорта данных.

Экспорт реализован как последовательный процесс: от валидации входных данных до физического сохранения XLSX-файла на сервере.


Автозагрузка библиотек

Плагин не использует Composer и не полагается на системные автозагрузчики. Вместо этого он реализует несколько специализированных автозагрузчиков для:

  • PhpSpreadsheet;
  • интерфейсов PSR Simple Cache;
  • ZipStream;
  • MyCLabs Enum.

Такой подход гарантирует:

  • предсказуемость загрузки классов;
  • отсутствие конфликтов с другими плагинами;
  • возможность использования плагина в средах с ограниченным доступом.

Логирование

В плагине предусмотрена собственная система логирования, которая:

  • фиксирует начало и завершение процессов экспорта;
  • записывает SQL-запросы;
  • сохраняет информацию об ошибках базы данных и файловой системы;
  • позволяет отследить проблемы без включения отладочного режима Cotonti.

Логи сохраняются в отдельном файле внутри каталога плагина, что упрощает диагностику и поддержку.


Контроль безопасности и ограничений

Плагин намеренно ограничивает экспорт только одной таблицей, указанной в конфигурации. Даже если пользователь попытается передать другое имя таблицы, операция будет заблокирована.

Такой механизм предотвращает:

  • несанкционированный доступ к системным таблицам;
  • экспорт чувствительных данных;
  • SQL-инъекции через подмену имени таблицы.

Доступ к инструменту экспорта разрешён только пользователям с административными правами для данного плагина.


Административный интерфейс

Назначение интерфейса

Административная часть плагина реализована как инструмент Cotonti и предназначена для интерактивной настройки экспорта.

Через интерфейс администратор может:

  • увидеть список полей целевой таблицы;
  • выбрать, какие поля будут включены в экспорт;
  • задать пользовательские заголовки колонок Excel;
  • просмотреть список ранее сгенерированных файлов;
  • скачать любой из существующих XLSX-файлов.

Динамическое определение структуры таблицы

Плагин автоматически получает список колонок из базы данных. Это означает, что:

  • не требуется ручная настройка полей;
  • изменения структуры таблицы автоматически отражаются в интерфейсе;
  • плагин подходит для любых пользовательских таблиц.

Названия полей по умолчанию преобразуются в верхний регистр, но могут быть изменены вручную.


Работа с сессиями

Для повышения удобства работы плагин использует сессии PHP. Выбранные поля и пользовательские названия колонок сохраняются между запросами, что позволяет:

  • не настраивать экспорт заново при каждом использовании;
  • повторять выгрузку с теми же параметрами;
  • работать с большими таблицами поэтапно.

AJAX-экспорт

Экспорт данных выполняется через асинхронный HTTP-запрос. Это даёт несколько преимуществ:

  • интерфейс не блокируется во время выполнения операции;
  • пользователь получает мгновенную обратную связь;
  • файл автоматически загружается после генерации.

После завершения экспорта страница обновляется, и новый файл появляется в списке доступных загрузок.


Генерация Excel-файла

Формирование структуры файла

Excel-файл создаётся с нуля для каждой операции экспорта. В нём:

  • первая строка содержит заголовки колонок;
  • каждая следующая строка соответствует одной записи базы данных;
  • порядок колонок соответствует выбору администратора.

Типы данных передаются напрямую, без преобразования, что сохраняет исходное содержимое базы.


Ограничение количества строк

Плагин поддерживает ограничение количества экспортируемых строк. Это особенно важно при работе с большими таблицами, так как позволяет:

  • избежать превышения лимитов памяти;
  • ускорить процесс генерации файла;
  • выполнять тестовые выгрузки.

Значение ноль отключает лимит полностью.


Хранение файлов

Сгенерированные файлы сохраняются в каталоге плагина и не удаляются автоматически. Это позволяет:

  • повторно скачивать файлы;
  • использовать их как архив выгрузок;
  • передавать ссылки на файлы другим пользователям.

Размер файла и дата генерации отображаются в интерфейсе.


Типовые сценарии применения

Экспорт контента сайта

Администратор может выгружать данные страниц, новостей или любых пользовательских сущностей для:

  • редактирования контента вне CMS;
  • передачи данных редакторам;
  • подготовки отчётов.

Аналитика и отчётность

Плагин позволяет быстро получить структурированные данные для:

  • анализа посещаемости;
  • оценки активности пользователей;
  • формирования бизнес-отчётов.

Миграция данных

Excel-файлы, созданные плагином, могут использоваться как промежуточный формат при переносе данных между системами или при подготовке данных к импорту в другие платформы.


Резервное копирование

Хотя плагин не заменяет полноценный бэкап базы данных, он может использоваться для создания резервных копий отдельных таблиц в человекочитаемом формате.


Заключение

Плагин Excel Export для Cotonti CMF представляет собой зрелое, продуманное и безопасное решение для экспорта данных в формат Excel. Он сочетает в себе:

  • строгий контроль доступа;
  • автономную архитектуру без Composer;
  • гибкий административный интерфейс;
  • надёжную работу с большими объёмами данных.

Плагин подходит как для повседневных административных задач, так и для более сложных сценариев, связанных с анализом и обработкой данных. Его архитектура позволяет использовать его в production-среде без риска нарушения целостности системы или утечки данных.

 Постоянная ссылка на исходный код плагина в публичном репозитории на GitHub. 

 

 

Техническая часть руководства по плагину.

 

Описание: Экспорт в Excel статей, форумов, пользователей, товаров, заказов и платежей из БД сайта на Cotonti

Плагин "excel_export" для Cotonti CMF - это простой и универсальный инструмент, который позволяет экспортировать данные из любой таблицы базы данных в файл формата Excel (.xlsx). После экспорта файл автоматически скачивается на компьютер пользователя и сохраняется в папке plugins/excel_export/uploads/. На странице плагина отображается список ранее созданных файлов экспорта с возможностью их скачивания. Плагин использует библиотеку PhpSpreadsheet для генерации файлов Excel и работает без Composer.

 

Важно к прочтению

  1. Для получения точных названий таблиц, если у вас просто нет к ним доступа здесь и сейчас, можно использовать похожий инструмент "DB Structure Viewer" для Cotonti CMF, который также предоставляет гибкие инструменты для просмотра и экспорта полей из базы данных, но с важными двумя отличиями:
  • не использует внешних библиотек;
  • не экспортирует в Excel.
    Он отображает все таблицы и поля в БД и может экспортировать в sql, csv, json, а также в php в виде небольших массивов, с предварительным просмотром данных в полях всех таблиц вашей БД. "DB Structure Viewer" и "Export to Excel" это похожие, но разные инструменты для разных задач.
  1. Для импорта данных разработанны другие плагины, посетите Маркетплейс расширений для Cotonti CMF или смотрите мои разработки в репозиториях на GitHub.

Основные возможности

  • Динамический выбор нужных полей из нужной таблицы для экспорта.
  • Настройка пользовательских названий колонок первой строки в итоговом файле Excel.
  • Ограничение количества экспортируемых строк (настраивается в конфигурации).
  • Сохранение экспортированных файлов в папке uploads/ с возможностью последующего и/или одновременного скачивания.
  • Интерфейс в админке Cotonti с формой выбора полей и списком предыдущих операций экспорта со ссылками на сохраненные файлы.

Зависимости и требования

Cotonti: Версия 0.9.26+. PHP: 8.4+. Права записи в папки logs/ и uploads/. Доступ к uploads/ через веб-сервер.

Используемые библиотеки

  • PhpSpreadsheet 1.23.0 — генерация файлов Excel (.xlsx).
  • ZipStream 2.4.0 — создание ZIP-архивов для .xlsx файлов.
  • myclabs/php-enum 1.8.4 — зависимость ZipStream для работы с перечислениями.
  • psr/simple-cache — кэширование (зависимость PhpSpreadsheet).

Исходные библотеки

  • PhpSpreadsheet 1.23.0:
    • Репозиторий на GitHub файл PhpSpreadsheet-1.23.0.zip.
    • Расположение в структуре плагина plugins/excel_export/lib/phpspreadsheet/src/PhpOffice/PhpSpreadsheet/.
  • ZipStream 2.4.0:
    • Репозиторий на GitHub файл zipstream-php-2.4.0.zip.
    • Расположение в структуре плагина plugins/excel_export/lib/zipstream/src/.
  • myclabs/php-enum 1.8.4:
    • Репозиторий на GitHub файл php-enum-1.8.4.zip.
    • Расположение в структуре плагина plugins/excel_export/lib/php-enum/src/.
  • psr/simple-cache:
    • Репозиторий на GitHub или используйте версию из PhpSpreadsheet.
    • Расположение в структуре плагина plugins/excel_export/lib/psr/simple-cache/src/Psr/SimpleCache/.

Структура плагина

└──/plugins/excel_export/
	├── excel_export.setup.php       # Файл конфигурации и установки плагина
	├── excel_export.tools.php       # Основной файл инструмента админки
	├── excel_export.global.php      # Connect to hook "global" in Cotonti Core. Here is Required!
	├── inc/
	│   └── excel_export.functions.php  # Функции экспорта и автозагрузка библиотек
	├── lib/
	│   ├── phpspreadsheet/
	│   │   └── src/PhpOffice/PhpSpreadsheet/  # PhpSpreadsheet 1.23.0
	│   ├── psr/
	│   │   └── simple-cache/src/Psr/SimpleCache/  # PSR Simple Cache
	│   ├── zipstream/
	│   │   └── src/  # ZipStream 2.4.0
	│   └── php-enum/
	│       └── src/  # myclabs/php-enum 1.8.4
	├── logs/
	│   └── export.log              # Лог экспорта для отладки
	├── tpl/
	│   └── excel_export.tools.tpl  # Шаблон формы и списка файлов
	└── uploads/                    # Папка для сохранения экспортированных файлов

Порядок установки

1. Скачайте плагин:

  • Скачать исходный код плагина и распаковать архив.
  • Скопировать папку excel_export в папку plugins в корне вашего сайта, например /home/var/public_html/plugins/.
  • Копировать рекомендуется через FileZilla или другой инструмент, который позволяет контролировать потерю и пропуск файлов. Пропущенные файлы обязательно перезакачать.
  • При закачивание файлов

2. Права на необходимые папки:

  • chmod 755 на папку plugins/excel_export/logs.
  • chmod 755 на папку plugins/excel_export/uploads.

3. Установите плагин в Cotonti:

    Зайдите в админку: "Управление сайтом / Расширения".
    Найдите "Export to Excel via PhpSpreadsheet" в списке.
    Нажмите "Установить".
	**Настройки плагина** для изменения конфигурации:
    export_table: **Таблица, которую будете использовать для экспорта** (по умолчанию pages, соответствует cot_pages).
    max_rows: Максимальное количество строк для экспорта (по умолчанию 100, установите 0 для снятия ограничения).
    Очистите кэш: "Управление сайтом / Кэш" → "Очистить кэш".

4. Проверьте доступность uploads/:

    Убедитесь, что папка uploads/ доступна через веб (например, https://example.com/plugins/excel_export/uploads/).
    Если доступ запрещён (403), настройте веб-сервер (например, уберите запрет в .htaccess).

Порядок и настройки экспорта в Excel

Выберите таблицу для экспорта:

Прежде всего, в настройках конфигурации плагина нужно указать таблицу базы данных вашего сайта на Cotonti, которую будете использовать для экспорта. Имя таблицы, указывается без префикса, например: pages, forum_posts, users, market или любая другая, одна на ваш выбор, которая вам нужна для дальнейше работы в Excel после экспорта.

Доступ к инструменту: кнопка "Администрирование"

Управление сайтом / Расширения / Экспорт в Excel через PhpSpreadsheet (карточка расширения). Ссылка "Администрирование" ведёт на страницу: https://example.com/admin.php?m=other&p=excel_export где расположен интерфейс и инструменты экспорта.

Выберите поля для экспорта: На странице отображается таблица со всеми полями, например, при экспорте из cot_pages (например, page_id, page_title, page_text и т.д.). Поставьте галочку напротив полей, которые хотите экспортировать. (Опционально) Введите пользовательские названия колонок в поле "Custom Name" (если пусто, используется имя поля в верхнем регистре, например, PAGE_ID).

Экспортируйте данные: Нажмите кнопку "Экспортировать". Файл .xlsx (например, export_2025-03-16_13-XX-XX.xlsx) скачается на ваш компьютер. Этот же файл сохранится в папке plugins/excel_export/uploads/.

Просмотрите предыдущие экспорты: Ниже формы выбора полей отображается блок "Previous Exports". В нём перечислены все .xlsx файлы из uploads/ с названием, размером и датой создания. Щёлкните по названию файла, чтобы скачать его повторно.

Пример лога экспорта

Лог записывается в plugins/excel_export/logs/export.log для отладки:

[2026-02-02 12:04:18] Starting export process
[2026-02-02 12:04:18] Target table: 'pages', Expected table: 'cot_pages'
[2026-02-02 12:04:18] Selected fields: page_id, page_title
[2026-02-02 12:04:18] Executing query: SELECT page_id, page_title FROM cot_pages LIMIT 100
[2026-02-02 12:04:18] Data fetched: X rows
[2026-02-02 12:04:18] Creating new Spreadsheet
[2026-02-02 12:04:18] Setting headers
[2026-02-02 12:04:18] Filling data
[2026-02-02 12:04:18] Generating XLSX to file: /home/var/public_html/plugins/excel_export/uploads/export_2026-02-02_12-04-18.xlsx
[2026-02-02 12:04:18] File generated successfully: /home/var/public_html/plugins/excel_export/uploads/export_2026-02-02_12-04-18.xlsx

Название: Export to Excel via PhpSpreadsheet
Версия: 2.0.1
Дата создания: 16 марта 2025 Дата обновления: 02 февраль 2026 Автор: webitproff
package: excel_export copyright: Copyright (c) webitproff 2026 | https://github.com/webitproff license: BSD

Скачать бесплатно плагин экспорта данных в Excel (.xlsx)

Публичный репозиторий на GitHub с открытым исходным кодом

Тема поддержки плагина на форуме

Предложить мне задание



Рейтинг на основе отзывов:
Звезд получено: 0
Oтзывов всего: 0
Средняя оценка: 0
9 минут чтения
Владелец: Carbonate Sodium

Отзывы к товарам

Отзывов пока нет


Добавить в корзину

К этому товару прикреплен файл для загрузки.

Export_to_Excel_for_Cotonti_CMF_02_02_2026.zip

Количество скачиваний файла 5

 

Категория расширения
Импорт, экспорт и обмен данными, Утилиты и инструменты
Доступность
Бесплатно

Автор контента

webitproff

Оффлайн

webitproff

Последняя авторизация: 21.07.2026 00:03

  • Чем могу помочь?

    Оказываю весь спектр услуг по CMF Cotonti. Разработка открытых и закрытых корпоративных интернет порталов, небольших социальных сетей, торговые площадки, маркетплейсы, биржи фриланса, каталоги товаров оптовых поставщиков, интернет-магазин под заказ, чтобы делать совместные покупки и групповые совместные продажи от имени нескольких продавцов.

  • Разработки на GitHub бесплатно
    • 02.02.2026 19:21
    • 04.02.2026 02:20
    • Язык:

    Рекомендуемые товары и услуги

    Market Products Import CSV/Excel - плагин для Cotonti

    Market Products Import CSV/Excel - плагин для Cotonti

    Плагин marketproductsimport - это инструмент массового импорта товаров в интернет-магазин или

    Рекомендуемые темы форума для этого товара

    "Excel Export" - плагин экспорта из любой таблицы базы данных Cotonti

    "Excel Export" - плагин экспорта из любой таблицы базы данных Cotonti

    Поддержка и обсуждения плагина "Excel Export", который позволяет просто и быстро экспортировать
    #182 | Постов: 1 | Просмотров: 862

    Витрина Market PRO

    CMS, Скрипт и Движок - веб сайта онлайн-витрины, интернет магазина инфопродуктов и цифровых товаров. Разные цены в разных валютах на товар. Онлайн-оплата в криптовалюте за товары и услуги.