Vous êtes sur la page 1sur 5

Benjion's Blog : vous avez dit développement web

?
blog sur le développement web, jquery,css3, Magento,
Symphony, php et bien d'autres choses
Librairie PHPExcel, créer,écrire, récupérer le contenu d’une
cellule dans un fichier et plein d’autres astuces …
04 22 11
si vous devez créer un fichier xls et écrire des données dans les cellules de votre fichier Excel en PHP.
Vous devez utiliser la librairie PHPExcel.
voir le tutoriel pour lire un fichier excel xlsx avec PHPExcel
(http://benjion.wordpress.com/2011/04/06/lire-un-fichier-excel-xls-avec-la-librairie-phpexcel/). pour
récupérer le contenu d’une cellule en string par exemple.
Dans cet article, nous allons voir comment créer un fichier xlsx et comment écrire des données dedans.
création d’un objet phpexcel
$obj PHPExcel = new PHPExcel ( ) ;
on définit les propriétés de notre document
$obj PHPExcel - >get Pr oper t i es( )
- >set Cr eat or ( "Benj i on")
- >set Last Modi f i edBy( "Benj i on")
- >set Ti t l e( "un f i chi er de t est ")
- >set Subj ect ( "comment cr eer un f i chi er excel avec PHPExcel ")
- >set Descr i pt i on( "descr i pt i on du f i chi er ")
- >set Keywor ds( "cr eat i on f i chi er excel phpexcel t ut or i el ") ;
$sheet = $obj PHPExcel - >get Act i veSheet ( ) ;
on paramètre le password et les sécurités
$sheet - >get Pr ot ect i on( ) - >set Sheet ( t r ue) ;
$sheet - >get Pr ot ect i on( ) - >set Passwor d( ' benj i 0n' ) ;
$sheet - >get Pr ot ect i on( ) - >set Sheet ( t r ue) ;
$sheet - >get Pr ot ect i on( ) - >set Sor t ( t r ue) ;
$sheet - >get Pr ot ect i on( ) - >set I nser t Rows( t r ue) ;
$sheet - >get Pr ot ect i on( ) - >set For mat Cel l s( t r ue) ;
on paramètre la largeur des column
$sheet - >get Col umnDi mensi on( ' A' ) - >set Wi dt h( 20) ;
$sheet - >get Col umnDi mensi on( ' B' ) - >set Wi dt h( 45) ;
$sheet - >get Col umnDi mensi on( ' C' ) - >set Wi dt h( 45) ;
$sheet - >get Col umnDi mensi on( ' D' ) - >set Wi dt h( 15) ;
centrer le contenu d une cellule
$sheet - >get St yl e( ' A2' ) - >get Al i gnment ( )
- >set Hor i zont al ( PHPExcel _St yl e_Al i gnment : : HORI ZONTAL_CENTER) ;
mettre en gras le contenu d’une cellule
$st yl eAr r ay = ar r ay( ' f ont ' => ar r ay( ' bol d' => t r ue) ) ;
$sheet - >get St yl e( ' A1' ) - >appl yFr omAr r ay( $st yl eAr r ay) ;
definir la hauteur de ligne
$obj PHPExcel - >get Act i veSheet ( )
- >get RowDi mensi on( ' i ndex l i gne' ) - >set RowHei ght ( 100) ;
Merger des cellules
$obj PHPExcel - >get Act i veSheet ( ) - >mer geCel l s( ' A1: D1' ) ;
pour ajouter une valeur dans une cellule
$sheet - >set Cel l Val ue( ' A' . $I ndexLi gne, $val ue) ;
proteger une cellule d’un fichier excel avec PHPExcel
$sheet - >get St yl e( ' A' . $Rowkey) - >get Pr ot ect i on( ) - >set Locked(
PHPExcel _St yl e_Pr ot ect i on: : PROTECTI ON_PROTECTED
) ;
debloquer une cellule d’un fichier excel
$sheet - >get St yl e( ' C' . $Rowkey) - >get Pr ot ect i on( ) - >set Locked(
PHPExcel _St yl e_Pr ot ect i on: : PROTECTI ON_UNPROTECTED
) ;
ouvrir le fichier excel sur la première page par defaut
$obj PHPExcel - >set Act i veSheet I ndex( 0) ;
écrire les données dans le fichier Excel
$obj Wr i t er = PHPExcel _I OFact or y: : cr eat eWr i t er ( $obj PHPExcel , ' Excel 2007' ) ;
on créer le fichier
6 COMMENTAIRES
$obj Wr i t er - >save( ' ur l / ver s/ mon/ nomduf i chi er . ext ensi on' ) ;
auteur de ligne
$obj PHPExcel - >get Act i veSheet ( ) - >get RowDi mensi on( ' i ndex de l i gne' )
- >set RowHei ght ( 100) ;
saut a la ligne dans une cellule
$obj PHPExcel - >get Act i veSheet ( )
- >set Cel l Val ue( ' H5' , "Hel l o\ r Wor l d") ;
$obj PHPExcel - >get Act i veSheet ( ) - >get St yl e( ' H5' )
- >get Al i gnment ( ) - >set Wr apText ( t r ue) ;
forcer telechargement du fichier dans le browser
header ( ' Cont ent - t ype: appl i cat i on/ vnd. ms- excel ' ) ;
header ( ' Cont ent - Di sposi t i on: at t achment ; f i l ename="PV AAPC. xl sx"' ) ;
$obj Wr i t er - >save( ' php: / / out put ' ) ;
You May Like
1.
CATÉGORIE:
PHP, UNCATEGORIZED, WEB DEVELOPPEMENT
TAGUÉ:
ÉCRIRE DANS UN FICHIER EXCEL
PHP
PHPEXCEL
Commentaires sur: "Librairie PHPExcel, créer,écrire, récupérer le
contenu d’une cellule dans un fichier et plein d’autres astuces …" (6)
Katherine Petrova a dit:
06/30/2011 à 4:32
Salut, j’utilise phpexcel et jusqu’içi j’ai pas eu de problème sauf maintenant où je dois créer un ficher
About these ads (http://en.wordpress.com/about-
these-ads/)
Salut, j’utilise phpexcel et jusqu’içi j’ai pas eu de problème sauf maintenant où je dois créer un ficher
avec des lignes qui se répètent.j’ai parcouru tous les forums et toujours pas de solution.
je ve faire un truc de ce genre:
http://nsa28.casimages.com/img/2011/06/30/110630053737699208.png
merçi pour votre aide
benjion a dit:
06/30/2011 à 11:29
Merci, ravis d’avoir pu t’aider
stef a dit:
11/02/2011 à 4:37
Bonjour,
J’ai un problème avec la fonction setCellValue.
J’essaye de mettre une valeur grâce à une variable récupérée d’une requette sql.
Cette valeur est en fait une chaine de caractère, mais quand j’ouvre le fichier excel, il n’y a que la
première lettre qui a été insérée.
$sheet->setCellValue(‘A’ . $IndexLigne, $result['id']);
Je n’arrive pas à obtenir la chaine en entier.
J’espere que vous pourrez m’aider.
Merci d’avance!
stef a dit:
11/02/2011 à 4:52
En fait le problème n’est pas celui que je pensais : il m’affiche la chaine de caractère jusqu’à
arrivé à un caractère accentué, où il s’arrête alors. Le problème est que j’ai besoin qu’il écrive la
chaine complètement, avec les caractères accentués inclus.
Je vous remercie d’avance pour votre aide.
nico a dit:
12/02/2011 à 12:13
il faut utiliser utf8_encode($machainedecaractere)
Developpement Web : les 10 articles les plus consultés sur Benjion’s blog ces 12 derniers
mois | Benjion's Blog : vous avez dit développement web ? a dit:
03/08/2013 à 3:56
[...] 6 Encore une astuce pour manipuler les fichiers Excel avec PHP : Librairie PHPExcel, créer et
écrire dans un fichier et plein d’autres astuces … [...]
Create a free website or blog at WordPress.com. | Thème Spectrum.
Suivre
Souscrire à “Benjion's Blog : vous avez dit développement web
?”
Propulsé par WordPress.com