par
anti91 » 01 août 2017, 14:11
bonjour à tous ,
comme indiqué dans le titre ,
l'utilisateur fais une sélection de champs et l'enregistre dans la bdd table requete .
une fois sa requête enregistré , il peut cliquer sur un bouton pour exporter en fichier excel .
mon problème est dans la création du fichier excel , autant j'arrive bien à agrémenter le nom des colonnes en fonction de la requête sélectionné .
par contre avec la boucle while pour les resultats , cela pose un problème ...
voila le code et merci d'avance pour votre aide
Code : Tout sélectionner
include 'Classes/PHPExcel.php';
include 'Classes/PHPExcel/PHPExcel/IOFactory.php';
// création des objets de base et initialisation des informations d'entête
$classeur = new PHPExcel;
$classeur->getProperties()->setCreator("Annie Gagnon");
$classeur->setActiveSheetIndex(0);
$feuille=$classeur->getActiveSheet();
for($col = 'A'; $col !== 'ZZ'; $col++) {
$classeur->getActiveSheet()->getColumnDimension($col)->setAutoSize(true);
}
// ajout des données dans la feuille de calcul
$feuille->setTitle('Nom affiché dans l\'onglet');
$nom_requete = 'test 4';
$resultats=$connexion->query("SELECT * FROM Requete WHERE nom_requete ='" . $nom_requete . "'");
$resultats->setFetchMode(PDO::FETCH_OBJ);
$result = $resultats->fetch();
$u=0;
if(($result->ref_client) == true )
{
$feuille->setCellValueByColumnAndRow($u,1,'Ref client');
$u++;
}
if(($result->part_number) == true )
{
$feuille->setCellValueByColumnAndRow($u,1,'Part number');
$u++;}
if(($result->collection_client) == true )
{
$feuille->setCellValueByColumnAndRow($u,1,'Collection client');
$u++;}
if(($result->collection_origine) == true )
{
$feuille->setCellValueByColumnAndRow($u,1,'Collection origine');
$u++;}
if(($result->nom_origine) == true )
{
$feuille->setCellValueByColumnAndRow($u,1,'Nom origine');
$u++;}
if(($result->nom_final) == true )
{
$feuille->setCellValueByColumnAndRow($u,1,'Nom final');
$u++;}
$login_requete = 'AMORET';
$resultats=$connexion->query("SELECT * FROM Produit WHERE login ='".$login_requete."'");
$resultats->setFetchMode(PDO::FETCH_OBJ);
$i=2;
$k=A;
while ( $donnees = $resultats->fetch() )
{
if(($result->ref_client) == true )
{
$feuille->SetCellValue($k.$i,$donnees->ref_client);
}
if(($result->part_number) == true )
{
$feuille->SetCellValue($k.$i,$donnees->part_number);
}
if(($result->collection_client) == true )
{
$feuille->SetCellValue($k.$i,$donnees->collection_client);
}
if(($result->collection_origine) == true )
{
$feuille->SetCellValue($k.$i,$donnees->collection_origine);
}
if(($result->nom_origine) == true )
{
$feuille->SetCellValue($k.$i,$donnees->nom_origine);
}
if(($result->nom_final) == true )
{
$feuille->SetCellValue($k.$i,$donnees->nom_final);
}
$i++;
}
// envoi du fichier au navigateur
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$nom_requete.'.xlsx"');
header('Cache-Control: max-age=0');
$writer = PHPExcel_IOFactory::createWriter($classeur, 'Excel2007');
$writer->save('php://output');
?>
bonjour à tous ,
comme indiqué dans le titre ,
l'utilisateur fais une sélection de champs et l'enregistre dans la bdd table requete .
une fois sa requête enregistré , il peut cliquer sur un bouton pour exporter en fichier excel .
mon problème est dans la création du fichier excel , autant j'arrive bien à agrémenter le nom des colonnes en fonction de la requête sélectionné .
par contre avec la boucle while pour les resultats , cela pose un problème ...
voila le code et merci d'avance pour votre aide
[code]include 'Classes/PHPExcel.php';
include 'Classes/PHPExcel/PHPExcel/IOFactory.php';
// création des objets de base et initialisation des informations d'entête
$classeur = new PHPExcel;
$classeur->getProperties()->setCreator("Annie Gagnon");
$classeur->setActiveSheetIndex(0);
$feuille=$classeur->getActiveSheet();
for($col = 'A'; $col !== 'ZZ'; $col++) {
$classeur->getActiveSheet()->getColumnDimension($col)->setAutoSize(true);
}
// ajout des données dans la feuille de calcul
$feuille->setTitle('Nom affiché dans l\'onglet');
$nom_requete = 'test 4';
$resultats=$connexion->query("SELECT * FROM Requete WHERE nom_requete ='" . $nom_requete . "'");
$resultats->setFetchMode(PDO::FETCH_OBJ);
$result = $resultats->fetch();
$u=0;
if(($result->ref_client) == true )
{
$feuille->setCellValueByColumnAndRow($u,1,'Ref client');
$u++;
}
if(($result->part_number) == true )
{
$feuille->setCellValueByColumnAndRow($u,1,'Part number');
$u++;}
if(($result->collection_client) == true )
{
$feuille->setCellValueByColumnAndRow($u,1,'Collection client');
$u++;}
if(($result->collection_origine) == true )
{
$feuille->setCellValueByColumnAndRow($u,1,'Collection origine');
$u++;}
if(($result->nom_origine) == true )
{
$feuille->setCellValueByColumnAndRow($u,1,'Nom origine');
$u++;}
if(($result->nom_final) == true )
{
$feuille->setCellValueByColumnAndRow($u,1,'Nom final');
$u++;}
$login_requete = 'AMORET';
$resultats=$connexion->query("SELECT * FROM Produit WHERE login ='".$login_requete."'");
$resultats->setFetchMode(PDO::FETCH_OBJ);
$i=2;
$k=A;
while ( $donnees = $resultats->fetch() )
{
if(($result->ref_client) == true )
{
$feuille->SetCellValue($k.$i,$donnees->ref_client);
}
if(($result->part_number) == true )
{
$feuille->SetCellValue($k.$i,$donnees->part_number);
}
if(($result->collection_client) == true )
{
$feuille->SetCellValue($k.$i,$donnees->collection_client);
}
if(($result->collection_origine) == true )
{
$feuille->SetCellValue($k.$i,$donnees->collection_origine);
}
if(($result->nom_origine) == true )
{
$feuille->SetCellValue($k.$i,$donnees->nom_origine);
}
if(($result->nom_final) == true )
{
$feuille->SetCellValue($k.$i,$donnees->nom_final);
}
$i++;
}
// envoi du fichier au navigateur
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$nom_requete.'.xlsx"');
header('Cache-Control: max-age=0');
$writer = PHPExcel_IOFactory::createWriter($classeur, 'Excel2007');
$writer->save('php://output');
?>
[/code]