Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.07.2018, 13:55   #1
dbalor
Форумчанин
 
Аватар для dbalor
 
Регистрация: 06.09.2016
Сообщений: 198
По умолчанию phpexcel

phpexcel не сохраняет файл, никаких ошибок не выдает.
(Код взят из примера)
Код:
$array = $_POST;
// Подключаем класс для работы с excel
require_once('libs/PHPExcel.php');
// Подключаем класс для вывода данных в формате excel
require_once('libs/PHPExcel/Writer/Excel5.php');

// Создаем объект класса PHPExcel
$xls = new PHPExcel();
// Устанавливаем индекс активного листа
$xls->setActiveSheetIndex(0);
// Получаем активный лист
$sheet = $xls->getActiveSheet();
// Подписываем лист
$sheet->setTitle('Таблица умножения');

// Вставляем текст в ячейку A1
$sheet->setCellValue("A1", 'Таблица умножения');
$sheet->getStyle('A1')->getFill()->setFillType(
    PHPExcel_Style_Fill::FILL_SOLID);
$sheet->getStyle('A1')->getFill()->getStartColor()->setRGB('EEEEEE');

// Объединяем ячейки
$sheet->mergeCells('A1:H1');

// Выравнивание текста
$sheet->getStyle('A1')->getAlignment()->setHorizontal(
    PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

for ($i = 2; $i < 10; $i++) {
	for ($j = 2; $j < 10; $j++) {
        // Выводим таблицу умножения
        $sheet->setCellValueByColumnAndRow(
                                          $i - 2,
                                          $j,
                                          $i . "x" .$j . "=" . ($i*$j));
	    // Применяем выравнивание
	    $sheet->getStyleByColumnAndRow($i - 2, $j)->getAlignment()->
                setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
	}
}
// Выводим HTTP-заголовки
 header ( "Expires: Mon, 1 Apr 1974 05:00:00 GMT" );
 header ( "Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT" );
 header ( "Cache-Control: no-cache, must-revalidate" );
 header ( "Pragma: no-cache" );
 header ( "Content-type: application/vnd.ms-excel" );
 header ( "Content-Disposition: attachment; filename=matrix.xls" );

// Выводим содержимое файла
 $objWriter = new PHPExcel_Writer_Excel5($xls);
 $objWriter->save('php://output');
dbalor вне форума Ответить с цитированием
Старый 26.07.2018, 14:43   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

у меня ваш пример отработал.
я только изменил пути (прописал путь к тому каталогу, где у меня лежит PHPExcel).
у меня версия PHPExcel
* Copyright (c) 2006 - 2014 PHPExcel
- * @version 1.8.0, 2014-03-02


А как у Вас не работает?
Ошибки выдаёт?

После обращения к данному скрипту (у себя я его поместил на сервере в файл testphpexcel.php) происходит скачивание файла matrix.xls
Посмотрите у себя в браузере в "Загрузках". Может быть, там всё скачивается.

ещё допишите в начало скрипта включение сообщений об ошибках:

Код:
<?php

ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);


$array = $_POST;
// Подключаем класс для работы с excel
require_once('../Classes/PHPExcel.php');
// Подключаем класс для вывода данных в формате excel
require_once('../Classes/PHPExcel/Writer/Excel5.php');

Последний раз редактировалось Serge_Bliznykov; 26.07.2018 в 14:46.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.07.2018, 14:55   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

упс. отработало на PHP 5
а на PHP 7 вернуло внутри файла текст ошибки:

Цитата:
Код:
<br />
<b>Fatal error</b>:  'break' not in the 'loop' or 'switch' context in <b>/var/www/html/Classes/PHPExcel/Calculation/Functions.php</b> on line <b>581</b><br />
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.07.2018, 14:55   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от dbalor Посмотреть сообщение
phpexcel не сохраняет файл, никаких ошибок не выдает.
(Код взят из примера)
Код:
...
 $objWriter->save('php://output');
Так и не должен сохранять – эта команда выдаёт готовый файл в выходной буфер:http://php.net/manual/ru/wrappers.php.php
Для сохранения файла на сервере здесь нужно указать путь и имя файла, в который нужно сохранить информацию: '/path/to/folder/xyz.xlsx'
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PHPExcel и сквозные строки Рустам PHP 2 10.10.2017 13:38
PHPexcel в PHP7 Demedrol PHP 2 20.09.2017 08:41
PHPExcel, вставить/добавить строку kuzjma PHP 0 20.02.2012 17:32
не могу установить phpexcel на денвер ubun PHP 3 25.10.2011 22:25