Как экспортировать таблицу html в Excel?

Чтобы экспортировать таблицу HTML в Excel в рамках платформы "Битрикс24", вам понадобится использовать PHPExcel - библиотеку для работы с Excel форматами файлов в PHP. Ниже приведен подробный шаг за шагом пример кода, который позволит вам экспортировать таблицу HTML в Excel:

1. Установите PHPExcel. Скачайте архив с библиотекой PHPExcel с официального сайта (https://github.com/PHPOffice/PHPExcel/releases) или установите ее через Composer, добавив соответствующую зависимость в файл composer.json.

2. Создайте PHP-файл, например export.php, и подключите библиотеку PHPExcel:

require_once 'PHPExcel/PHPExcel.php';

3.Создайте новый экземпляр класса PHPExcel:

$objPHPExcel = new PHPExcel();

4. Установите заголовки столбцов:

$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Заголовок 1');
$objPHPExcel->getActiveSheet()->setCellValue('B1', 'Заголовок 2');
$objPHPExcel->getActiveSheet()->setCellValue('C1', 'Заголовок 3');

5. Прочитайте таблицу HTML из файла или переменной и преобразуйте ее в массив с помощью функции PHP:

$html = file_get_contents('table.html');
$table = array();
$doc = new DOMDocument();
$doc->loadHTML($html);
$rows = $doc->getElementsByTagName('tr');
foreach ($rows as $row) {
    $rowData = array();
    $cols = $row->getElementsByTagName('td');
    foreach ($cols as $col) {
        $rowData[] = $col->nodeValue;
    }
    $table[] = $rowData;
}

6. Установите данные таблицы в Excel:

$rowNumber = 2;
foreach ($table as $rowData) {
    $colNumber = 0;
    foreach ($rowData as $colData) {
        $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($colNumber, $rowNumber, $colData);
        $colNumber++;
    }
    $rowNumber++;
}

7. Сохраните файл Excel:

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('table.xls');

В результате выполнения этих шагов, таблица HTML будет экспортирована в файл Excel с именем "table.xls". Вы можете задать любое имя файла и путь для сохранения файла.

Обратите внимание, что данный пример предназначен для экспорта таблицы HTML без форматирования, только с данными ячеек. Если вам нужно сохранить все стили, формулы или другие объекты таблицы, вам придется адаптировать код для вашей таблицы HTML. Также обратите внимание, что библиотека PHPExcel больше не разрабатывается, поэтому рекомендуется использовать новую библиотеку PhpSpreadsheet (https://github.com/PHPOffice/PhpSpreadsheet), которая является ее продолжением.