Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Présentation PHPOffice

6,177 views

Published on

Présentation de PHPOffice et des divers projets le composant : PHPExcel, PHPPowerPoint, PHPWord, PHPProjet, PHPVisio et PHPAccess.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Présentation PHPOffice

  1. 1. PHPOffice https://github.com/PHPOffice/ Librairie pour créer, lire et écrire des documents aux formats standards de la bureautique ● PHPExcel ● PHPPowerPoint ● PHPWord ● PHPProject ● PHPVisio ● PHPAccess License : LGPL (peut être lié à du code non-propriétaire)
  2. 2. Fonctionnalités principales : ● Gestion des méta-données (auteur, description, etc.) ● Formatage et Style des cellules et du contenu ● Rich Text dans les cellules ● Formatage conditionnel ● Fusion de cellules ● Liens hypertexte ● AutoFiltre ● Options d'impression ● Figer des volets ● Images embarqués (à partir de fichiers ou d'images générées) ● Diagrammes ● Moteur de calcul de formule embarqué pour le pré-calcul des formules ● ...
  3. 3. Formats Extensions Lecture Ecriture BIFF(5-8) : MS Excel 95+ .xls, .xlt ✓ ✓ SpreadSheetML : MS Excel 2003 .xml ✓ OpenXML : MS Excel 2007+ .xlsx ✓ ✓ OpenDocument : LibreOffice .ods ✓ GNumeric .gnumeric ✓ SYLK .slk ✓ HTML .htm, .html ✓ ✓ CSV .csv ✓ ✓ PDF (tcPdf, domPDF, mPDF) .pdf ✓
  4. 4. // Create new PHPExcel object $objPHPExcel = new PHPExcel(); // Set document properties $objPHPExcel->getProperties()->setCreator("Me") ->setLastModifiedBy("Me") ->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 $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', 'Hello') ->setCellValue('B2', 'world!') ->setCellValue('C1', 'Hello') ->setCellValue('D2', 'world!'); // Miscellaneous glyphs, UTF-8 $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A4', 'Miscellaneous glyphs') ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); $objPHPExcel->getActiveSheet()->setCellValue('A8',"HellonWorld"); $objPHPExcel->getActiveSheet()->getRowDimension(8)->setRowHeight(-1); $objPHPExcel->getActiveSheet()->getStyle('A8')->getAlignment()->setWrapText(true); // 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); // Save Excel 2007 file $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save(str_replace('.php', '.xlsx', __FILE__)); // Save Excel 95 file $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save(str_replace('.php', '.xls', __FILE__));
  5. 5. Fonctionnalités principales : ● Gestion des méta-données (auteur, description, etc.) ● Gestion des sections avec paramétrage (orientation, taille de page, numérotation, header & footer) ● Gestion de l'UTF-8 et des fonts asiatiques ● Styles personnalisées (polices, paragraphes) ● Gestion de : ● Paragraphes ● Titres ● Sommaire ● Retour à la ligne/page ● Images (local, distance) en image ou watermark ● Objets OLE (Excel, Visio,…) ● Listes ● Hyperliens ● Notes de bas de page/de fin ● Formes (arc, rectangle, etc.) ● Diagrammes ● Champs de formulaire
  6. 6. Formats Extensions Lecture Ecriture MS Word 97+ .doc ✓ OpenXML : MS Word 2007+ .docx ✓ ✓ OpenDocument : LibreOffice .odt ✓ ✓ WordPad .rtf ✓ ✓ HTML .html, .htm ✓ PDF (tcPdf, domPDF, mPDF) .pdf ✓
  7. 7. $phpWord = new PhpOfficePhpWordPhpWord(); $phpWord->addFontStyle('rStyle', array('bold' => true, 'italic' => true, 'size' => 16, 'allCaps' => true, 'doubleStrikethrough' => true)); $phpWord->addParagraphStyle('pStyle', array('alignment' => 'center', 'spaceAfter' => 100)); $phpWord->addTitleStyle(1, array('bold' => true), array('spaceAfter' => 240)); // New portrait section $section = $phpWord->addSection(); // Simple text $section->addTitle(htmlspecialchars('Welcome to PhpWord', ENT_COMPAT, 'UTF-8'), 1); $section->addText(htmlspecialchars('Hello World!', ENT_COMPAT, 'UTF-8')); // Two text break $section->addTextBreak(2); // Defined style $section->addText(htmlspecialchars('I am styled by a font style definition.', ENT_COMPAT, 'UTF-8'), 'rStyle'); $section->addText(htmlspecialchars('I am styled by a paragraph style definition.', ENT_COMPAT, 'UTF-8'), null, 'pStyle'); $section->addText(htmlspecialchars('I am styled by both font and paragraph style.', ENT_COMPAT, 'UTF-8'), 'rStyle', 'pStyle'); $section->addTextBreak(); // Inline font style $fontStyle['name'] = 'Times New Roman'; $fontStyle['size'] = 20; $textrun = $section->addTextRun(); $textrun->addText(htmlspecialchars('I am inline styled ', ENT_COMPAT, 'UTF-8'), $fontStyle); $textrun->addText(htmlspecialchars('with ', ENT_COMPAT, 'UTF-8')); $textrun->addText(htmlspecialchars('color', ENT_COMPAT, 'UTF-8'), array('color' => '996699')); // Link $section->addLink('https://github.com/PHPOffice/PHPWord', htmlspecialchars('PHPWord on GitHub', ENT_COMPAT, 'UTF-8')); $section->addTextBreak(); // Image $section->addImage('resources/_earth.jpg', array('width'=>18, 'height'=>18)); $phpWord->save('file.docx', 'Word2007');
  8. 8. Fonctionnalités principales : ● Gestion des méta-données (auteur, description, etc.) ● Gestion des slides avec paramétrage ● Gestion de l'UTF-8 et des fonts asiatiques ● Styles personnalisées (polices, paragraphes) ● Gestion de diagrammes ● Gestion des transitions
  9. 9. Formats Extensions Lecture Ecriture MS PowerPoint 97+ .ppt ✓ OpenXML : MS PowerPoint 2007+ .pptx ✓ OpenDocument : LibreOffice .odp ✓
  10. 10. $objPHPPowerPoint = new PhpPowerpoint(); // Set properties $objPHPPowerPoint->getProperties()->setCreator('PHPOffice') ->setLastModifiedBy('PHPPowerPoint Team') ->setTitle('Sample 01 Title') ->setSubject('Sample 01 Subject') ->setDescription('Sample 01 Description') ->setKeywords('office 2007 openxml libreoffice odt php') ->setCategory('Sample Category'); // Create slide $currentSlide = $objPHPPowerPoint->getActiveSlide(); // Create a shape (drawing) $shape = $currentSlide->createDrawingShape(); $shape->setName('PHPPowerPoint logo') ->setPath('./resources/phppowerpoint_logo.gif') ->setHeight(36) ->setOffsetX(10) ->setOffsetY(10); $shape->getShadow()->setVisible(true)->setDirection(45)->setDistance(10); // Create a shape (text) $shape = $currentSlide->createRichTextShape() ->setHeight(300) ->setWidth(600) ->setOffsetX(170) ->setOffsetY(180); $shape->getActiveParagraph()->getAlignment()->setHorizontal( Alignment::HORIZONTAL_CENTER ); $textRun = $shape->createTextRun('Thank you for using PHPPowerPoint!'); $textRun->getFont()->setBold(true) ->setSize(60) ->setColor( new Color( 'FFE06B20' ) ); $objPHPPowerPoint->save('file.pptx', 'PowerPoint2007'); $objPHPPowerPoint->save('file.odp', 'ODPresentation');
  11. 11. Fonctionnalités principales : ● Gestion des méta-données (auteur, description, etc.) ● Gestion des ressources ● Gestion des tâches PHPProject Formats Extensions Lecture Ecriture MS Project Exchange .mpx ✓ ✓ GanttProject .gan ✓ ✓ HTML .html, .htm ✓
  12. 12. Fonctionnalités principales : ● Gestion des formes ● Gestion des connecteurs PHPVisio Formats Extensions Lecture Ecriture Dia .dia ✓ Visio 97+ .vsd ✓ Visio 2007+ .vsdx ✓
  13. 13. Fonctionnalités principales : ● Gestion des bases de données, tables, colonnes et lignes PHPAccess Formats Extensions Lecture Ecriture Access .mdb ✓ SQL .sql ✓ MySQL Workbench .mwb ✓
  14. 14. PHPOffice = Qualité  Documenté  Via ReadTheDocs.org  Et PHPDocumentor  Testé  Via Travis CI  Avec PHP_CodeSniffer  Avec PHP Mess Detector  Avec PHPUnit (> 80% de CC) Fonctionnel API

×