powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHPExcel5 проблема с выводом в файл
9 сообщений из 9, страница 1 из 1
PHPExcel5 проблема с выводом в файл
    #39126836
TemichRus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер, помогите пожалуйста)
Пытаюсь выдать пользователю файл xls , но когда скачиваю файл в нём кваказябры.
Даже если выдать пустой файл, также кваказябры.
Кодировка везде UTF-8. Если поменять на CP1251 так же кваказябры, только отличаются.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
        require_once('PHPExcel.php');
        require_once('PHPExcel/Writer/Excel5.php');

        $objPHPExcel = new PHPExcel();
        $objPHPExcel->setActiveSheetIndex(0);
        $active_sheet = $objPHPExcel->getActiveSheet();
        $objPHPExcel->createSheet();
        
        $active_sheet->mergeCells('A1:D1');
        $active_sheet->getRowDimension('1')->setRowHeight(40);
        $active_sheet->setCellValue('A1','Техно мир');
        $active_sheet->mergeCells('A2:D2');
        $active_sheet->setCellValue('A2','Компьютеры и комплектующие на любой вкус и цвет');
        $active_sheet->mergeCells('A4:C4');
        $active_sheet->setCellValue('A4','Дата создания прайс-листа');
        
        header("Content-Type:application/vnd.ms-excel");
        header("Content-Disposition:attachment;filename='simple.xls'");

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


Если вместо выдачи файла для скачивания, убрать header's и сохранить файл вот так:
$objWriter->save('C:/1.xls');
То в файле все прекрасно выводится.
Спасибо заранее.
...
Рейтинг: 0 / 0
PHPExcel5 проблема с выводом в файл
    #39126850
TemichRus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PHP 5.3 c Apache
...
Рейтинг: 0 / 0
PHPExcel5 проблема с выводом в файл
    #39126852
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перед отдачей файла какой-нить дряни не отдаётся? Вроде пробелов, BOM, перевода строки.
...
Рейтинг: 0 / 0
PHPExcel5 проблема с выводом в файл
    #39126876
TemichRus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle,

Если даже ничего не писать в файло, то та же ерунда
...
Рейтинг: 0 / 0
PHPExcel5 проблема с выводом в файл
    #39126886
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TemichRus,

А попробуй в ячейку текст писать с BOM. У меня что-то похожее было. Спасло или добавление или убирание BOM.
...
Рейтинг: 0 / 0
PHPExcel5 проблема с выводом в файл
    #39126893
TemichRus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster,

А как определить utf с bom у меня щас или нет? Может в настройках где то можно найти?
...
Рейтинг: 0 / 0
PHPExcel5 проблема с выводом в файл
    #39126904
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TemichRus,

Предлагаю сделать такой простенький тест.
1. TemichRusсохранить файл вот так:
$objWriter->save('C:/1.xls');
2. Сохранить тот же самый файл (не меняя его содержимого) "скачиванием" через скрипт.
3. Сравнить размеры полученных файлов с точностью до байта.

Размеры файлов должны быть одинаковы. По идее. Ведь, по сути, при одинаковых данных внутри файла должен сформироваться такой же файл независимо от способа сохранения.

Если размеры файлов будут отличаться, то следует посмотреть оба файла любой HEX-смотрелкой. Возможно, увидите какой-то мусор или иные отличия. Скорее всего, различия окажутся в самом начале или в конце.
...
Рейтинг: 0 / 0
PHPExcel5 проблема с выводом в файл
    #39127052
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TemichRus,

Ну я вот так вот писал (выкусил из старого проекта):

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 // на вход  в $s данные в win1251
  function xlstr($s)
  {
    $result="\xEF\xBB\xBF".mb_convert_encoding($s,"UTF-8","windows-1251");
    return ($result);
  }

  function dowriteinfo($objPHPExcel, $rownum, $info1, $info2)
  {
    $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$rownum,xlstr($info1));
    $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$rownum,xlstr($info2));
  }



P.S. Возможно там еще версия PHPExcel играет роль.
...
Рейтинг: 0 / 0
PHPExcel5 проблема с выводом в файл
    #39127505
TemichRus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster,

Спасибо, помогло)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHPExcel5 проблема с выводом в файл
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]