Aide sur un "Php To Excel"
Résolu
diablo13800
Messages postés
2890
Date d'inscription
Statut
Membre
Dernière intervention
-
diablo13800 Messages postés 2890 Date d'inscription Statut Membre Dernière intervention -
diablo13800 Messages postés 2890 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Suite à une demande , je dois pouvoir extraire une base de données (MySql) en excel par simple clic sur un bouton. La création du fichier doit pouvoir être " à la volée"
Actuellement j'essaie d'utiliser la bibliothèque PHPExcel ( trouvable ici : https://github.com/PHPOffice/PHPExcel mais cette dernière ne me sort que des fichiers corrompus.
Voici ce que donne mon script de génération actuel :
(Je précise que ce script vient essentiellement du fichier Example fourni avec la bibliothèque)
Auriez-vous déjà utilisé cette bibliothèque ? Pouvez - vous me dire d'où vient cette corruption de fichier et cas échéant auriez vous une autre bibliothèque / Méthode afin de faire ce qui m'a été demandé.
Merci d'avance
Suite à une demande , je dois pouvoir extraire une base de données (MySql) en excel par simple clic sur un bouton. La création du fichier doit pouvoir être " à la volée"
Actuellement j'essaie d'utiliser la bibliothèque PHPExcel ( trouvable ici : https://github.com/PHPOffice/PHPExcel mais cette dernière ne me sort que des fichiers corrompus.
Voici ce que donne mon script de génération actuel :
<?php
if(isset($_POST['excel'])) {
// création des objets de base et initialisation des informations d'entête
$compteur = 1;
try{
$classeur = new PHPExcel;
$classeur->getProperties()->setCreator('test');
$classeur->setActiveSheetIndex(0);
$feuille=$classeur->getActiveSheet();
// ajout des données dans la feuille de calcul
$feuille->setTitle('Etat de parc');
$feuille->setCellValueByColumnAndRow(0, 1, 'Les colonnes débutent à 0 et les lignes débutent à 1');
$feuille-> SetCellValue('A1', 'Immatriculation');
$feuille->SetCellValue('B1','Date d\'entrée');
$liste = $pdo->listActivevehicule();
foreach ($liste as $vehicule) {
$compteur=$compteur++;
$feuille->SetCellValue('A'.$compteur,$vehicule['immatriculation']);
$feuille->SetCellValue('B'.$compteur,$vehicule['dateEntree']);
}
// envoi du fichier au navigateur
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="EtatParc.xlsx"');
//header('Cache-Control: max-age=0');
$writer = PHPExcel_IOFactory::createWriter($classeur, 'Excel2007');
$writer->save('php://output');
}
catch(Exception $e){
echo 'Exception reçue : ', $e->getMessage(), "\n";
}
}
echo '<form method="post" action="' . $_SERVER['SCRIPT_NAME'] . '">';
echo '<div class="col-md-4 col-md-offset-4"><input type="submit" value="Exporter vers Excel" name="excel" /></div>';
echo '</form></Br>';?>
(Je précise que ce script vient essentiellement du fichier Example fourni avec la bibliothèque)
Auriez-vous déjà utilisé cette bibliothèque ? Pouvez - vous me dire d'où vient cette corruption de fichier et cas échéant auriez vous une autre bibliothèque / Méthode afin de faire ce qui m'a été demandé.
Merci d'avance
A voir également:
- Aide sur un "Php To Excel"
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Trier un tableau excel - Guide
- Comment calculer la moyenne sur excel - Guide
- Déplacer colonne excel - Guide
1 réponse
Bonjour,
Commence par vérifier l'encodage de tes fichiers sources. Assure toi qu'ils sont en utf8 sans BOM
https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8
Commence par vérifier l'encodage de tes fichiers sources. Assure toi qu'ils sont en utf8 sans BOM
https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8
Déjà fait, et pourtant le fichier est toujours corrompu. La ou cela me semble bizarre c'est le contenu du fichier Corrompu ... il contient... le code de la page qui fait appel à lui... pas les données que PhpExcel est sensé mettre . ( La corruption vient assurément de la)
As-tu déjà eu a faire a ce type de problématique d'exporter tes données en Excel? Car si tu as une autre manière de faire je suis pas limité:)
Tu dois absolument séparer le script qui génère le fichier excel du reste de ton code....
Donc :
- Un fichier php pour ton formulaire
- Un fichier php pour la génération du xlsx (avec UNIQUEMENT les instructions qui génèrent le document et rien d'autre ! )
T'es un génie en faite ? :)
En plus, du fait que ça fasse plus propre j'ai pu trouver le problème.
J'ai compris que le soucis venait de mon header qui devait faire planter le script
Merci Beaucoup.
Je passe le sujet en résolu