[RESOLU] fichier excel génèrer par phpexcel sur navigateur

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] fichier excel génèrer par phpexcel sur navigateur

Re: fichier excel génèrer par phpexcel sur navigateur

par moogli » 22 mars 2017, 18:12

de rien;

même 3 ans après je content d'avoir pu t'aider :)

@+

Re: fichier excel génèrer par phpexcel sur navigateur

par mdawa88 » 22 mars 2017, 16:52

Merci beaucoup pour votre solution. Elle m'a été d'une grande utilité.

Re: fichier excel génèrer par phpexcel sur navigateur

par moogli » 27 juil. 2013, 12:00

salut,

Problème similaire à post411425.html, a priori récurent :/

as tu regarder le contenu des deux fichiers pour les comparer (avec notepad++ par exemple?)

sinon tu peux très bien enregistrer la chose dans un fichier temporaire, récupérer le contenu et envoier la chose au navigateur (readfile)


si je trouve un peu de temps j’essaierais ton code (perso j'ai tester le fichier du thread cité plus haut et avec open office pas de soucis pour l'ouvrrir).


@+

fichier excel génèrer par phpexcel sur navigateur

par ps6c0tic » 26 juil. 2013, 17:57

Salut la compagnie, voilà je génère un fichier excel avec phpexcel, alors quand je l'enregistre sur un dossier depuis la fonction, ça marche nikel, mais quand je veux qu'il s'ouvre sur le navigateur, le fichier se télécharge et on me dit qu'il est endommagé :s. Est-ce un problème au niveau des entêtes de phpexcel ? Je ne vois pas vraiment comment remédier a ce problème, sachant que moi je veux l'afficher sur le navigateur

	<?php
		function excel_php(){
		include('database_connexion.php');
		include('PHPExcel/Classes/PHPExcel.php');
		include('PHPExcel/Classes/PHPExcel/Writer/Excel2007.php');
		$workbook = new PHPExcel;
		$sheet = $workbook->getActiveSheet();
		$query = $bdd->query("SELECT * FROM conges");
		$nbre=$query->ColumnCount();

			for($i=0;$i<$nbre;$i++){
				$j=$i;
				$sheet->getStyleByColumnAndRow($j++,1)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
				$sheet->getColumnDimensionByColumn($i)->setWidth(20);
			}


			for($i=0;$i<=6;$i++){
				$styleA = $sheet->getStyleByColumnAndRow($i,1);
				$styleA->applyFromArray(array(
				'font'=>array(
				    'bold'=>true,
				    'size'=>12,
				    'color'=>array(
				        'rgb'=>'FF00FF00')),
				'fill'=>array(
					'type'=>PHPExcel_Style_Fill::FILL_SOLID,
					'color'=>array(
					    'argb'=>'FFCC99')),
				'borders'=>array(
					'allborders' => array(
						'style' => PHPExcel_Style_Border::BORDER_DOUBLE,
						'color' => array(
							'rgb' => '808080'
						)
					))));
			}
		$sheet->setCellValueByColumnAndRow(0,1,'Matricule' );
		$sheet->setCellValueByColumnAndRow(1,1,'Collaborateur' );
		$sheet->setCellValueByColumnAndRow(2,1,'BU' );
		$sheet->setCellValueByColumnAndRow(3,1,'Date de Sortie' );
		$sheet->setCellValueByColumnAndRow(4,1,'Date de Retour' );
		$sheet->setCellValueByColumnAndRow(5,1,'Nombre de Jour' );
		$sheet->setCellValueByColumnAndRow(6,1,'Type de Congé' );
		$ligne = 2;
		while($data = $query->fetch()){
			$colonne=0;
			$sheet->setCellValueByColumnAndRow($colonne, $ligne, $data['matricule_co']);
			$sheet->getStyleByColumnAndRow($colonne,$ligne)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
			$sheet->getStyleByColumnAndRow($colonne,$ligne)->getBorders()->applyFromArray(array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM,'color' => array('rgb' => '808080'))));$colonne++;

			$sheet->setCellValueByColumnAndRow($colonne, $ligne, $data['nom_co']);
			$sheet->getStyleByColumnAndRow($colonne,$ligne)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
			$sheet->getStyleByColumnAndRow($colonne,$ligne)->getBorders()->applyFromArray(array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM,'color' => array('rgb' => '808080'))));$colonne++;

			$req1=$bdd->query("SELECT * FROM collaborateurs WHERE matricule='" . $data['matricule_co'] . "'");
			$collaborateur=$req1->fetch();$req1->closeCursor();
			$req1=$bdd->query("SELECT * FROM bu WHERE code_bu='" . $collaborateur['code_bu'] . "'");
			$bu=$req1->fetch();$req1->closeCursor();
			$sheet->setCellValueByColumnAndRow($colonne, $ligne, $bu['nom_bu']);
			$sheet->getStyleByColumnAndRow($colonne,$ligne)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
			$sheet->getStyleByColumnAndRow($colonne,$ligne)->getBorders()->applyFromArray(array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM,'color' => array('rgb' => '808080'))));$colonne++;

			$sheet->setCellValueByColumnAndRow($colonne, $ligne, $data['date_depart']);
			$sheet->getStyleByColumnAndRow($colonne,$ligne)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
			$sheet->getStyleByColumnAndRow($colonne,$ligne)->getBorders()->applyFromArray(array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM,'color' => array('rgb' => '808080'))));$colonne++;

			$sheet->setCellValueByColumnAndRow($colonne, $ligne, $data['date_retour']);
			$sheet->getStyleByColumnAndRow($colonne,$ligne)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
			$sheet->getStyleByColumnAndRow($colonne,$ligne)->getBorders()->applyFromArray(array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM,'color' => array('rgb' => '808080'))));$colonne++;

			$sheet->setCellValueByColumnAndRow($colonne, $ligne, $data['nbre_jour']);
			$sheet->getStyleByColumnAndRow($colonne,$ligne)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
			$sheet->getStyleByColumnAndRow($colonne,$ligne)->getBorders()->applyFromArray(array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM,'color' => array('rgb' => '808080'))));$colonne++;

			$req1=$bdd->query("SELECT * FROM type_conge WHERE id='" . $data['type_conge'] . "'");
			$conge=$req1->fetch();$req1->closeCursor();
			$sheet->setCellValueByColumnAndRow($colonne, $ligne, $conge['libelle']);	$sheet->getStyleByColumnAndRow($colonne,$ligne)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
			$sheet->getStyleByColumnAndRow($colonne,$ligne)->getBorders()->applyFromArray(array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM,'color' => array('rgb' => '808080'))));
			//Ligne à partir de 0; Colonne de 1; Donnée
			$ligne++;}

		$writer = new PHPExcel_Writer_Excel2007($workbook);
		$writer->setOffice2003Compatibility(true);
			header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
			header('Content-Disposition:inline;filename=Liste_conge.xlsx ');
			$writer->save('php://output');
}
?>