Экспорт в PHPExcel Excel работает на локальном хосте и тестовом сервере, но на рабочем сервере работает неправильно - PullRequest
2 голосов
/ 06 декабря 2011

Мой экспорт в коды Excel прекрасно работает на моем локальном хосте и тестовом сервере, но на рабочем сервере он сходит с ума.

Что-то подобное в экспортированном Excel:

ÐÏࡱá;þÿ 
þÿÿÿþÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ » ÌÑB°=¼%r8X"1ÜCalibri1ܼCalibriàõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À à À à È “€ÿ’â8ÿÿÿÿÿÿÿÿÿÿÿÿ€€€€€€€€€ÀÀÀ€€€™™ÿ™3fÿÿÌÌÿÿffÿ€€fÌÌÌÿ€ÿÿÿÿÿÿ€€€€€ÿÌÿÌÿÿÌÿÌÿÿ™™Ìÿÿ™ÌÌ™ÿÿÌ™3fÿ3ÌÌ™ÌÿÌÿ™ÿfff™–––3f3™f333™3™3f33™333…é WorksheetÁÁgæ®ü£CihazImei_NoGsm_NoKampanyaActivation_Date Fatura_Tutari Temlik_Tutari » ÌÑ*+‚€Áƒ„&ffffffæ?'ffffffæ?(è?)è?¡"dXX333333Ó?333333Ó?U} } }  }  } } } } $ } $ } $ } $ } 

$ } $ } $ } $ } $ } $ } $ } $ } $ } $ } $ } $ } $ } $ } $ } $ } $ } $ } $ } $ } $ }   $ } !!$ } ""$ } ##$ } $$$ } %%$ } &&$ } ''$ } (($ } ))$ } **$  

Я думаю, что-то с настройками моего сервера. Я не мог ничего найти. Что это может быть?

<?php

$rowIndex = 2;
$currentId = '';
while ($foundRows = mssql_fetch_array($rs)) {
    $colIndex = 0;
        foreach ($data_cols as $col_name) {
        $val = $foundRows[$col_name];
        $activeSheet->setCellValueByColumnAndRow($colIndex, $rowIndex, $val);
        $objPHPExcel->getActiveSheet()->getStyleByColumnAndRow($colIndex, $rowIndex)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
        $objPHPExcel->getActiveSheet()->getStyleByColumnAndRow($colIndex, $rowIndex)->getFill()->getStartColor()->setARGB('FFFFCC');
        $objPHPExcel->getActiveSheet()->getStyleByColumnAndRow($colIndex, $rowIndex)->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

    ++$colIndex;}
    ++$rowIndex;


}
$objPHPExcel->setActiveSheetIndex(0);


header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="temlik.xls"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');

1 Ответ

1 голос
/ 17 октября 2013

напишите ob_clean () как раз перед последней строкой ниже, у меня возникла та же проблема, решенная этим

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="temlik.xls"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
ob_clean();
$objWriter->save('php://output');
...