Разрыв строки PHPExcel не работает

#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. Не совсем уверен, как я помог, но рад, что вы нашли способ заставить его работать на вас