Формирование (псевдо)XLS в списке товаров

Речь о компоненте catalog.section. 
Вот что в итоге должно быть:
xls[1].jpg

Итак, в result_modifier.php добавляем следующий код, формирующий основное содержимое XLS в формате HTML:
$fileContent = '';
foreach($arResult["ITEMS"] as $key => $arElement) {
   $fileContent .= '<tr>';

   $fileContent .= '<td>'.$arElement["NAME"].'</td>';

   foreach($arElement["DISPLAY_PROPERTIES"] as $pid=>$arProperty) {
      $fileContent .= '<td>'.$arProperty["DISPLAY_VALUE"].'</td>';
   }

   $fileContent .= '</tr>';
}

$fileXLSpath = setXLS(
   $APPLICATION->GetCurDir()."price-".$arResult["CODE"].".xls",
   $fileContent
);

if($fileXLSpath) {
   $arResult["XLS"] = $fileXLSpath;
}

Сам файл формируется функцией setXLS, которую прописываю в init.php:
function setXLS($fileName, $content) {
   $fileStart = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
   <html>
   <head>
      <meta http-equiv="content-type" content="text/html; charset=windows-1251">
      <title></title>
      <meta name="generator" content="">

      <style type="text/css"><!--
         body,div,table,thead,tbody,tfoot,tr,th,td,p { font-family:"Calibri"; font-size:x-small }
          -->
      </style>
   </head>

   <body text="#000000">
   <table cellspacing="0" border="0">';

   $fileEnd = '</table></body></html>';

   if($content) {
      file_put_contents(
         $_SERVER['DOCUMENT_ROOT'].$fileName,
         $fileStart.$content.$fileEnd
      );

      return $fileName;
   } else {
      return false;
   }
}

В целом всё просто - для каждой страницы со списком товаров создается свой XLS файл и обновляется вместе с кешем шаблона компонента - именно тогда и исполняется result_modifier.php. 

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