Уважаемые форумчане, помогите разобраться.
Есть задача, нужно экспортировать данные элементов инфоблока (название, символьный код, свойства и т.д.) в Excel-файл.
Пробую использовать PHPExcel 1.7.8. Создаю отдельный php-файл.
В нем:
Код |
---|
<?
set_include_path(get_include_path() . PATH_SEPARATOR .'PHPExcel-1.7.8/Classes/');
include_once 'PHPExcel.php';
$pExcel = new PHPExcel();
$pExcel->setActiveSheetIndex(0);
$aSheet = $pExcel->getActiveSheet();
$aSheet->setTitle('Первый лист');
$aSheet->setCellValue('A1','Поле А1');
$aSheet->setCellValue('B1','Поле В1');
$aSheet->setCellValue('C1','поле С1');
include("PHPExcel/Writer/Excel5.php";
$objWriter = new PHPExcel_Writer_Excel5($pExcel);
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="my.xls"');
header('Cache-Control: max-age=0');
$objWriter->save('php://output');
?> |
Все работает, Xls-файл создается корректный, но если подключаю:
Код |
---|
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("" );
?>
PHPExcel - код
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?> |
то сохраняется файл с данными из header'а и footer'а. А нужных записей нет.
При добавлении:
Код |
---|
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if(CModule::IncludeModule("iblock"))
{
$arSelect = Array("NAME", "CODE");
$arFilter = Array("IBLOCK_ID"=>8);
$res = CIBlockElement::GetList(Array("IBLOCK_ID"=>"ASC"), $arFilter, false, false, $arSelect);
while($ob = $res->GetNextElement())
{
$arFields = $ob->GetFields();
print_r($arFields);
}
} |
в тот же файл с header и footer данными добавляются данные элементов инфоблока.
В классе PHPExcel_Autoloader есть похожий на выше рекомендованный метод :
Код |
---|
public static function Register()
{
if (func tion_exists('__autoload'))
{ // Register any existing autoloader function with SPL, so we don't get any clashes
spl_autoload_register('__autoload');
} // Register ourselves with SPL
return spl_autoload_register(array('PHPExcel_Autoloader', 'Load'));
} // function Register() |
При замене его на описанный выше
Код |
---|
public static function Register()
{
spl_autoload_register('__autoload');
return spl_autoload_register(array('PHPExcel_Autoloader', 'Load'));
} |
Excel файл перестает загружаться.