Плагин Excel Export для Cotonti CMF
"Excel Export" позволяет безопасно экспортировать данные из любой таблицы базы данных в Excel (XLSX). Выбор полей, кастомные заголовки, лимит строк, работа без Composer, поддержка PHP 8.4
Плагин 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.
Важно к прочтению
- Для получения точных названий таблиц, если у вас просто нет к ним доступа здесь и сейчас, можно использовать похожий инструмент "DB Structure Viewer" для Cotonti CMF, который также предоставляет гибкие инструменты для просмотра и экспорта полей из базы данных, но с важными двумя отличиями:
- не использует внешних библиотек;
- не экспортирует в Excel.
Он отображает все таблицы и поля в БД и может экспортировать в sql, csv, json, а также в php в виде небольших массивов, с предварительным просмотром данных в полях всех таблиц вашей БД. "DB Structure Viewer" и "Export to Excel" это похожие, но разные инструменты для разных задач.
- Для импорта данных разработанны другие плагины, посетите Маркетплейс расширений для 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/.
- Репозиторий на GitHub файл
- ZipStream 2.4.0:
- Репозиторий на GitHub файл
zipstream-php-2.4.0.zip. - Расположение в структуре плагина
plugins/excel_export/lib/zipstream/src/.
- Репозиторий на GitHub файл
- myclabs/php-enum 1.8.4:
- Репозиторий на GitHub файл
php-enum-1.8.4.zip. - Расположение в структуре плагина
plugins/excel_export/lib/php-enum/src/.
- Репозиторий на GitHub файл
- 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 с открытым исходным кодом
К этому товару прикреплен файл для загрузки.
Export_to_Excel_for_Cotonti_CMF_02_02_2026.zip
Количество скачиваний файла 5
- Категория расширения
- Импорт, экспорт и обмен данными, Утилиты и инструменты
- Доступность
- Бесплатно
Автор контента
Оффлайн
webitproff
Последняя авторизация: 21.07.2026 00:03
Чем могу помочь?
Оказываю весь спектр услуг по CMF Cotonti. Разработка открытых и закрытых корпоративных интернет порталов, небольших социальных сетей, торговые площадки, маркетплейсы, биржи фриланса, каталоги товаров оптовых поставщиков, интернет-магазин под заказ, чтобы делать совместные покупки и групповые совместные продажи от имени нескольких продавцов.
Разработки на GitHub бесплатно
Telegram
- 02.02.2026 19:21
- 04.02.2026 02:20
- Язык:
Рекомендуемые товары и услуги
Market Products Import CSV/Excel - плагин для Cotonti
Рекомендуемые темы форума для этого товара
"Excel Export" - плагин экспорта из любой таблицы базы данных Cotonti
Витрина Market PRO
CMS, Скрипт и Движок - веб сайта онлайн-витрины, интернет магазина инфопродуктов и цифровых товаров. Разные цены в разных валютах на товар. Онлайн-оплата в криптовалюте за товары и услуги.
English