Обучаю битриксу программистов, интеграторов. Подробнee ⇒

Простой экспорт в xls без доп библиотек



1. сначала выводим html с <table>,  потом заголовки
простой пример
<table><tr><th>1<th></tr></table>
<?
header("Content-type: application/vnd.ms-excel"); 
header("Content-Disposition: attachment; filename=myfilename.xls");
далее пример с особенностями битрикса

шаблон вывода компонента
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); ?>
<table cellpadding="0" cellspacing="0" border="1">
        <thead>
        <tr>
            <th>ID</th>
            <th>Company</th>
            <th>Last Name</th>
            <th>Name</th>
            <th>Phone</th>
            <th>Comment</th>
        </tr>
        </thead>
        <tbody>
            <?foreach($arResult["clients"] as $client):?>
                <tr>
                    <td><?php echo $client->getID()?></td>
                    <td><?= $client->getWorkCompany() ?></td>
                    <td><?= $client->getLastName()?></td>
                    <td><?= $client->getName()?></td>
                    <td><?= $client->getLogin()?></td>
                    <td><?= $client->getPersonalPhone()?></td>
                    <td><?= $client->getPersonalNotes()?></td>
                </tr>
            <?endforeach;?>
        </tbody>
    </table>
<?
    header("Content-type: application/vnd.ms-excel");
    header("Content-Disposition: attachment; filename=customers.xls");?>

файл export.php
<?
define("NO_KEEP_STATISTIC", true);
define("NO_AGENT_STATISTIC", true);
require_once($_SERVER["DOCUMENT_ROOT"] . '/bitrix/modules/main/include/prolog_before.php');

global $APPLICATION;
$params = ["controller"=>"exportDealerClient"];
$APPLICATION->IncludeComponent("dealer:client", "europe", $params);

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");

метод класса, который собирает данные, его размещать не буду, там у каждого своя логика
Если блог был полезным, можете угостить меня "чашечкой кофе" :)

Сбер по номеру телефона +7 (953) 585-13-09 Вероника.
Спасибо!