В общем все переделал
теперь проблема другая
если закидываю код вместе с кнопкой вызова в файл фильтра то файл эксель формируется только с заголовками
если закидываю в news.list где собственно и выводятся результаты фильтрации то клик не отрабатывает на скрипт
тупо открывает в новом окне
вот код
может кто что подскажет[CODE]<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
/** @var array $arParams */
/** @var array $arResult */
/** @global CMain $APPLICATION */
/** @global CUser $USER */
/** @global CDatabase $DB */
/** @var CBitrixComponentTemplate $this */
/** @var string $templateName */
/** @var string $templateFile */
/** @var string $templateFolder */
/** @var string $componentPath */
/** @var CBitrixComponent $component */
$this->setFrameMode(true);
//pre($arResult);
?>
<div class="catalog-list">
<ul>
<?foreach($arResult["ITEMS"] as $arItem):?>
<li class="news-item <?=$arcc?>" id="<?=$this->GetEditAreaId($arItem['ID']);?>">
<div class="info">
<h3><a href="<?=$arItem['DETAIL_PAGE_URL']?>"><?=$arItem["NAME"]?></a></h3>
<div class="cont">
<?if( $arItem["PROPERTIES"]["ADRESS"]["VALUE"] ):?>
<span>Адрес: <?=$arItem["PROPERTIES"]["ADRESS"]["VALUE"]?></span>
<?endif?>
</div>
</div>
</li>
<?endforeach?>
</ul>
</div>
<a class="btn-greys2" href="index.php?hello=true" target="_blank" rel="noopener noreferrer" >Скачать XLSX</a>
<?php
require 'bitrix/modules/pai.phpoffice/phpspread/vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
function runMyFunction() {
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Название');
$sheet->setCellValue('B1', 'ИНН/КПП');
$i = 2;
foreach($arResult["ITEMS"] as $arItem){
$name = $arItem["NAME"];
$inn = $arItem["PROPERTIES"]["INN_KPP"]["VALUE"];
// Another data
$sheet->setCellValue('A' . $i, $name);
$sheet->setCellValue('B' . $i, $inn);
// Set row height
$spreadsheet->getActiveSheet()->getRowDimension($i)->setRowHeight(100);
$i++;
}
$spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(60);
$spreadsheet->getActiveSheet()->getColumnDimension('B')->setWidth(60);
// redirect output to client browser
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="myfile.xlsx"');
header('Cache-Control: max-age=0');
ob_end_clean();
$writer = new Xlsx($spreadsheet);
$writer->save('php://output');
exit();
}
if (isset($_GET['hello'])) {
runMyFunction();
}
?>
</div>
<?if($arParams["DISPLAY_BOTTOM_PAGER"]):?>
<?=$arResult["NAV_STRING"]?>
<?endif?>
[/CODE]
теперь проблема другая
если закидываю код вместе с кнопкой вызова в файл фильтра то файл эксель формируется только с заголовками
если закидываю в news.list где собственно и выводятся результаты фильтрации то клик не отрабатывает на скрипт
тупо открывает в новом окне
вот код
может кто что подскажет[CODE]<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
/** @var array $arParams */
/** @var array $arResult */
/** @global CMain $APPLICATION */
/** @global CUser $USER */
/** @global CDatabase $DB */
/** @var CBitrixComponentTemplate $this */
/** @var string $templateName */
/** @var string $templateFile */
/** @var string $templateFolder */
/** @var string $componentPath */
/** @var CBitrixComponent $component */
$this->setFrameMode(true);
//pre($arResult);
?>
<div class="catalog-list">
<ul>
<?foreach($arResult["ITEMS"] as $arItem):?>
<li class="news-item <?=$arcc?>" id="<?=$this->GetEditAreaId($arItem['ID']);?>">
<div class="info">
<h3><a href="<?=$arItem['DETAIL_PAGE_URL']?>"><?=$arItem["NAME"]?></a></h3>
<div class="cont">
<?if( $arItem["PROPERTIES"]["ADRESS"]["VALUE"] ):?>
<span>Адрес: <?=$arItem["PROPERTIES"]["ADRESS"]["VALUE"]?></span>
<?endif?>
</div>
</div>
</li>
<?endforeach?>
</ul>
</div>
<a class="btn-greys2" href="index.php?hello=true" target="_blank" rel="noopener noreferrer" >Скачать XLSX</a>
<?php
require 'bitrix/modules/pai.phpoffice/phpspread/vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
function runMyFunction() {
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Название');
$sheet->setCellValue('B1', 'ИНН/КПП');
$i = 2;
foreach($arResult["ITEMS"] as $arItem){
$name = $arItem["NAME"];
$inn = $arItem["PROPERTIES"]["INN_KPP"]["VALUE"];
// Another data
$sheet->setCellValue('A' . $i, $name);
$sheet->setCellValue('B' . $i, $inn);
// Set row height
$spreadsheet->getActiveSheet()->getRowDimension($i)->setRowHeight(100);
$i++;
}
$spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(60);
$spreadsheet->getActiveSheet()->getColumnDimension('B')->setWidth(60);
// redirect output to client browser
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="myfile.xlsx"');
header('Cache-Control: max-age=0');
ob_end_clean();
$writer = new Xlsx($spreadsheet);
$writer->save('php://output');
exit();
}
if (isset($_GET['hello'])) {
runMyFunction();
}
?>
</div>
<?if($arParams["DISPLAY_BOTTOM_PAGER"]):?>
<?=$arResult["NAV_STRING"]?>
<?endif?>
[/CODE]