From 927d1513cfe01361e745901a2759339edce57fe4 Mon Sep 17 00:00:00 2001 From: Alexander Pervakov Date: Mon, 14 Jul 2014 12:07:07 +0400 Subject: [PATCH 1/3] Fix output in ODS example --- Examples/01simple-download-ods.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Examples/01simple-download-ods.php b/Examples/01simple-download-ods.php index ddabd3ee..574fb011 100644 --- a/Examples/01simple-download-ods.php +++ b/Examples/01simple-download-ods.php @@ -85,6 +85,5 @@ header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1 header ('Pragma: public'); // HTTP/1.0 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'OpenDocument'); -//$objWriter->save('php://output'); -$objWriter->save('a.ods'); +$objWriter->save('php://output'); exit; From a81a7da6616d22e566db61aa9b5ae9a737f5b6f2 Mon Sep 17 00:00:00 2001 From: Alexander Pervakov Date: Mon, 14 Jul 2014 14:51:45 +0400 Subject: [PATCH 2/3] Add cell comment --- .../Writer/OpenDocument/Cell/Comment.php | 63 +++++++++++++++++++ .../PHPExcel/Writer/OpenDocument/Content.php | 1 + 2 files changed, 64 insertions(+) create mode 100644 Classes/PHPExcel/Writer/OpenDocument/Cell/Comment.php diff --git a/Classes/PHPExcel/Writer/OpenDocument/Cell/Comment.php b/Classes/PHPExcel/Writer/OpenDocument/Cell/Comment.php new file mode 100644 index 00000000..88406ed1 --- /dev/null +++ b/Classes/PHPExcel/Writer/OpenDocument/Cell/Comment.php @@ -0,0 +1,63 @@ + + */ +class PHPExcel_Writer_OpenDocument_Cell_Comment +{ + public static function write(PHPExcel_Shared_XMLWriter $objWriter, PHPExcel_Cell $cell) + { + $comments = $cell->getWorksheet()->getComments(); + if (!isset($comments[$cell->getCoordinate()])) { + return; + } + $comment = $comments[$cell->getCoordinate()]; + + $objWriter->startElement('office:annotation'); + //$objWriter->writeAttribute('draw:style-name', 'gr1'); + //$objWriter->writeAttribute('draw:text-style-name', 'P1'); + $objWriter->writeAttribute('svg:width', $comment->getWidth()); + $objWriter->writeAttribute('svg:height', $comment->getHeight()); + $objWriter->writeAttribute('svg:x', $comment->getMarginLeft()); + $objWriter->writeAttribute('svg:y', $comment->getMarginTop()); + //$objWriter->writeAttribute('draw:caption-point-x', $comment->getMarginLeft()); + //$objWriter->writeAttribute('draw:caption-point-y', $comment->getMarginTop()); + $objWriter->writeElement('dc:creator', $comment->getAuthor()); + // TODO: Not realized in PHPExcel_Comment yet. + //$objWriter->writeElement('dc:date', $comment->getDate()); + $objWriter->writeElement('text:p', $comment->getText()->getPlainText()); + //$objWriter->writeAttribute('draw:text-style-name', 'P1'); + $objWriter->endElement(); + } +} diff --git a/Classes/PHPExcel/Writer/OpenDocument/Content.php b/Classes/PHPExcel/Writer/OpenDocument/Content.php index 932f2cae..8666f222 100644 --- a/Classes/PHPExcel/Writer/OpenDocument/Content.php +++ b/Classes/PHPExcel/Writer/OpenDocument/Content.php @@ -230,6 +230,7 @@ class PHPExcel_Writer_OpenDocument_Content extends PHPExcel_Writer_OpenDocument_ $objWriter->writeElement('text:p', $cell->getValue()); break; } + PHPExcel_Writer_OpenDocument_Cell_Comment::write($objWriter, $cell); $objWriter->endElement(); $prev_column = $column; $cells->next(); From 524c0938957950ea05563a677bc43adc0d8644e3 Mon Sep 17 00:00:00 2001 From: Alexander Pervakov Date: Mon, 14 Jul 2014 14:55:57 +0400 Subject: [PATCH 3/3] Fix reader when comment within text:p element --- Classes/PHPExcel/Reader/OOCalc.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Classes/PHPExcel/Reader/OOCalc.php b/Classes/PHPExcel/Reader/OOCalc.php index ce30fc25..4ffed2b3 100644 --- a/Classes/PHPExcel/Reader/OOCalc.php +++ b/Classes/PHPExcel/Reader/OOCalc.php @@ -515,9 +515,13 @@ class PHPExcel_Reader_OOCalc extends PHPExcel_Reader_Abstract implements PHPExce $annotationText = $cellDataOffice->annotation->children($namespacesContent['text']); $textArray = array(); foreach($annotationText as $t) { - foreach($t->span as $text) { - $textArray[] = (string)$text; - } + if (isset($t->span)) { + foreach($t->span as $text) { + $textArray[] = (string)$text; + } + } else { + $textArray[] = (string) $t; + } } $text = implode("\n",$textArray); // echo $text,'
';