Экспорт таблицы HTML в Excel | REDS Group
REDS Group
ул. Большая Академическая, дом 5, стр. 1, Москва.

Экспорт таблицы HTML в Excel

Сегодня мы покажем, как это можно сделать простым способом, не применяя дополнительных библиотек, используя PHP
4296
timeВремя чтения:7 минут
timeВремя чтения:7 минут watched4296

Экспорт таблицы HTML в Excel

Сегодня мы покажем, как это можно сделать простым способом, не применяя дополнительных библиотек, используя PHP

Экспорт таблицы HTML в Excel

У многих возникает проблема с экспортом простых HTML таблиц в Excel (*.xls). Сегодня мы покажем, как это можно сделать простым способом, не применяя дополнительных библиотек, используя PHP

quote Excel давно научился сохранять свои файлы, как HTML документ, следовательно мы можем выполнить данный процесс в обратную сторону – сохранить HTML документ (в нашем случае таблица 'table').

Перейдём сразу к делу.

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

Разберём все по порядку.

Таблица HTML

Это тот элемент, который нам необходимо перенести в Excel. Он может быть любого объема, самое главное, чтобы это была именно таблица HTML в тегах table. Причём не важно, есть в нем thead, или его нет. Но если он будет, то таблица выгрузится корректнее.

Форма с кнопкой

Под формой подразумевается одна кнопка, на которой будет написано "EXCEL" или "Выгрузить в Excel". Стилизовать кнопку вы сможете и сами. Главный смысл, чтобы данная кнопка при нажатии отправляла POST запрос в обработчик.

Вот пример:

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

  $(document).ready(function() {
      $('.button--excel').attr('disabled', false);
      var excel_data = $('#report_table').html(); 
      $('#xls_data').val(excel_data);
  });

Теперь разложим, как работает эта форма в комбинации с js.

Поля в форме:

xls_data - Поле, в которое запишется наш код таблицы, который мы отправим в обработчик.

report_name - Название отчета (будет в названии файла)

button--excel - Кнопка отправки

В js коде происходит следующее. Кнопка экспорта становится активной (происходит разблокировка) по завершению загрузки страницы, далее код таблицы (в нашем случае id таблицы -  #report_table), передается в поле #xls_data.

Обработчик PHP

Со клиентской стороны всё готово, осталось создать простейший обработчик, который сформирует xls файл (внимание, пробелы перед началом тегов):

header('Content-Type: application/vnd.ms-excel; charset=utf-8;');  
header('Content-disposition: attachment; filename='.$_POST["report_name"].'_'.date("d-m-Y").'.xls');  
header("Content-Transfer-Encoding: binary ");
echo '  
   < html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 < head>
 
 
 < title>Demo
 
 < body>';
echo '< table border="1" cellpadding="15">';
echo $_POST["data"];  
echo '';
echo '
'; echo '';

В данном обработчике есть все необходимые заголовки для формирования таблицы Excel с кодировкой UTF-8. Формируется название файла и вставляется сама таблица.

Готово! Можете проверять результат. Способ не должен быть реализован обязательно таким образом. Показан простой пример реализации.

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


Поделиться: Поделитесь в соц. сетях
Vkontakte Facebook Tweeter Odnoklassniki

Вам может быть интересно:

Загрузка комментариев...