#phpexcel #page-break
#phpexcel #разрыв страницы
Вопрос:
. . . . Я использую Codeigniter 3.1 и PHPExcel 1.8.
У меня есть функция, которая создает объект PHPExcel и возвращает его, а другая функция выводит Excel в браузер
Все работает отлично. Теперь для определенных строк мне нужно добавить разрывы страниц.
if($count == 4 || ($count > 4 amp;amp; (($count - 4) % 6 == 0))){
//echo("A - $row <br>Count - $count<br><hr>");
$sheet->setBreak('A' . $row , PHPExcel_Worksheet::BREAK_ROW );
}
Echo выдает мне необходимые строки, поэтому условие работает нормально. Единственная проблема . . . . . разрыв страницы не работает. Итак, какие-либо предложения?
Ниже приведен код, используемый для создания файла
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$file_name");
header("Cache-Control: max-age=0");
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel5");
$objWriter->save("php://output");
Комментарии:
1. Разрыв страницы подходит только для авторов Excel2007 или Excel5; какой писатель вы используете?
2. Я использую Excel5
3. И вы напечатали его через MS Excel, и он игнорирует разрывы строк?
4. да, добавление строки setbreak не имело никакого значения вообще:(
5. Как это отображается при предварительном просмотре из MS Excel? Какую версию MS Excel вы используете? Я не смог воспроизвести эту проблему ни с читателями Excel2007, ни с Excel5
Ответ №1:
Проблема решена. Изначально я использовал функцию setbreak при вставке строк. и всякий раз, когда условие выполняется, вызывайте функцию. Я просматривал код, получил идею, реализовал ее и решил. Вместо вызова функции setbreak во время генерации строки я сохранил ссылку на строку в массиве, а затем, выполнив все настройки страницы, в конце зациклил массив и вызвал setbreak для строк, и это сработало :). Спасибо, Марк, поскольку обсуждение с вами помогло мне уже дважды 🙂
Комментарии:
1. Не совсем уверен, как я помог, но рад, что вы нашли способ заставить его работать на вас