Open 3cees opened 9 years ago
Unable to replicate, using your own code.... what version of PHPExcel are you running?
It should be the lkates from here. I will download it again and retry it. If i take lesse then 10 values, it works as expected
Yes. Just checked. I use the lates version from github. Set the loop to 200 items and got the result in the attached file. https://wsi.li/DTo3psiE4cZ2/168001
Which branch on github? develop or 1.8?
I've tested with up to 20000 iterations in the loop, and still haven't managed to replicate this problem
Yes. 1.8. Could it be a server issue?
It's certainly an oddity, though PHP should behave the same regardless of platform (32-bit/64-bit discrepancies aside)
I am calling that function through an ajax call.
It runs inside a worpdress installation and it only happens when I use $wizard->toRichTextObject()
.
If you need any more info, or should know any workaraund, let me know. Maybe there is an easy way, to debug this.
Unless I can find some way of replicating it, I'm unlikely ever to find a fix.... fiddling with the code blindfold, and never being able to know if anything I've changed will fix the problem is almost impossible.
You can check it via TeamViewer. If you want.
By the way: this problem only appears, when the line break property is set.
Hi Mark!
I've got a similar problem, too (PHPExcel 1.8, PHP 5.3.x, OpenOffice 4.1.2).
You may reproduce it by using the example "42richText.php". I used this modified version (no saving, just direct output):
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
date_default_timezone_set('Europe/London');
define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
/** Include PHPExcel */
require_once dirname(__FILE__) . '/Classes/PHPExcel.php';
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
// Set document properties
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
->setLastModifiedBy("Maarten Balliauw")
->setTitle("PHPExcel Test Document")
->setSubject("PHPExcel Test Document")
->setDescription("Test document for PHPExcel, generated using PHP classes.")
->setKeywords("office PHPExcel php")
->setCategory("Test result file");
// Add some data
$html1 = '<font color="#0000ff">
<h1 align="center">My very first example of rich text<br />generated from html markup</h1>
<p>
<font size="14" COLOR="rgb(0,255,128)">
<b>This block</b> contains an <i>italicized</i> word;
while this block uses an <u>underline</u>.
</font>
</p>
<p align="right"><font size="9" color="red">
I want to eat <ins><del>healthy food</del> <strong>pizza</strong></ins>.
</font>
';
$html2 = '<p>
<font color="#ff0000">
100°C is a hot temperature
</font>
<br>
<font color="#0080ff">
10°F is cold
</font>
</p>';
$html3 = '2<sup>3</sup> equals 8';
$html4 = 'H<sub>2</sub>SO<sub>4</sub> is the chemical formula for Sulphuric acid';
$html5 = '<strong>bold</strong>, <em>italic</em>, <strong><em>bold+italic</em></strong>';
$wizard = new PHPExcel_Helper_HTML;
$richText = $wizard->toRichTextObject($html1);
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', $richText);
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(48);
$objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
$objPHPExcel->getActiveSheet()->getStyle('A1')
->getAlignment()
->setWrapText(true);
$richText = $wizard->toRichTextObject($html2);
$objPHPExcel->getActiveSheet()
->setCellValue('A2', $richText);
$objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
$objPHPExcel->getActiveSheet()->getStyle('A2')
->getAlignment()
->setWrapText(true);
$objPHPExcel->getActiveSheet()
->setCellValue('A3', $wizard->toRichTextObject($html3));
$objPHPExcel->getActiveSheet()
->setCellValue('A4', $wizard->toRichTextObject($html4));
$objPHPExcel->getActiveSheet()
->setCellValue('A5', $wizard->toRichTextObject($html5));
// Here comes the loop ;)
for($i = 6; $i<100; $i++){
$objPHPExcel->getActiveSheet()
->setCellValue('A'.$i, $wizard->toRichTextObject('<strong>Test #'.$i.'</strong>bla<br>blubb'));
}
// Rename worksheet
$objPHPExcel->getActiveSheet()->setTitle('Simple');
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);
// NEW
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="Test"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;
?>
Any idea?
Hello,
this:
Produces this:
Is that a bug, or is my function wrong?