Création d'un fichier Excel et copie d'un autre
Posté : 06 déc. 2017, 11:59
Bien le bonjour à tous,
J'ai besoin de votre aide.
Voilà je suis entrain de faire un bout de code qui consiste à créer un fichier excel et ensuite d'y copier les données provenant d'un fichier excel existant. Le but en fait est de classer les données de 1208 fichiers excel dans un seul en enlevant les doublons par la suite mais cela sera un autre problème.
Mes fichiers sont classés par nombre. Le premier étant : 201705031017. Lorsque le code tombe sur ce chiffre il comprend donc que c'est le premier fichier et crée alors un nouveau fichier dans lequel il copiera le fichier 201705031017.xlsx. Ensuite il continuera sa boucle afin d'y ajouter, dans ce nouveau fichier, toutes les données des autres fichiers existants.
Voici mon code:
J'ai bien trouvé des bouts de code pour la copie mais je n'arrive pas à l'implémenter dans mon code.
Je vous remercie d'avance.
J'ai besoin de votre aide.
Voilà je suis entrain de faire un bout de code qui consiste à créer un fichier excel et ensuite d'y copier les données provenant d'un fichier excel existant. Le but en fait est de classer les données de 1208 fichiers excel dans un seul en enlevant les doublons par la suite mais cela sera un autre problème.
Mes fichiers sont classés par nombre. Le premier étant : 201705031017. Lorsque le code tombe sur ce chiffre il comprend donc que c'est le premier fichier et crée alors un nouveau fichier dans lequel il copiera le fichier 201705031017.xlsx. Ensuite il continuera sa boucle afin d'y ajouter, dans ce nouveau fichier, toutes les données des autres fichiers existants.
Voici mon code:
Code : Tout sélectionner
<h1>Tri excel</h1>
<main>
<?php
$dossier="";
$nb_fichier=0;
//Scan du dossier Fichier_excel
if($dossier = opendir('./Fichiers_excel'))
{
while(false !== ($fichier = readdir($dossier)))
{
// le count inclut toujours le dossier actuel et le dossier parent d'où ce test avec le . et le ..
if($fichier != '.' && $fichier != '..')
{
//$file2 = substr(pathinfo($fichier, PATHINFO_FILENAME), 1);
$nb_fichier++;
//echo '<li><a href="./csv/' . $fichier . '">' . $fichier . '</a></li>';
}
}
//echo $nb_fichier;
echo '</ul><br />';
$ok=1;
closedir($dossier);
}
else
{
echo 'Le dossier n\' a pas pu être ouvert';
}
if($ok==1)
{
echo "<div id=\"rslt\">";
if($nb_fichier<0)
{
echo 'Il n\'y a aucun fichier dans le dossier';
}
else
{
echo 'Il y a <strong> ' . $nb_fichier . ' </strong> fichier(s) dans le dossier';
echo "</div>";
//On utilise la bibliothéque Excel
require_once('Lib_excel/Classes/PHPExcel.php');
if($dossier = opendir('./Fichiers_excel'))
{
while(false !== ($fichier = readdir($dossier)))
{
//echo $fichier;
if($fichier != '.' && $fichier != '..')
{
$file2 = substr(pathinfo($fichier, PATHINFO_FILENAME), 0);
echo $file2;
if($file2=="201705031017")
{
//Création d'un nouveau fichier Excel
//Fichier nécessaire à la génération du tableur
include 'Lib_excel/Classes/PHPExcel.php';
include 'Lib_excel/Classes/PHPExcel/Writer/Excel2007.php';
//Instanciation du nouveau projet Excel
$workbook = new PHPExcel;
//Activation de la feuille de travail (celle par défaut)
$sheet = $workbook->getActiveSheet();
//Copie des données du premier fichier ouvert
[b][color=#FF0000] C'est ici que j'ai besoin de votre aide.[/color][/b]
//Instanciation d'un objet writer spécifique au type de tableau que nous voulons générer
$writer = new PHPExcel_Writer_Excel2007($workbook);
//On donne un nom au fichier et on l'enregistre
$records = './Fichiers_excel/Fichier_final.xlsx';
$writer->save($records);
}
else
{
// Chargement du premier fichier Excel
try {
$inputFileType = PHPExcel_IOFactory::identify("./Fichiers_excel/".$fichier);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load("./Fichiers_excel/".$fichier);
$sheet = $objPHPExcel->getActiveSheet() ;
echo 'Premier fichier ouvert';
} catch(Exception $e) {
die('<br>Error loading file "'.pathinfo($fichier,PATHINFO_BASENAME).'": '.$e->getMessage());
}
if($file2<201707181524)
{
}
else
{
}
//Libération de l'espace mémoire de la seconde feuille
$objPHPExcel1->disconnectWorksheets();
unset($objPHPExcel1);
echo 'Traitement des 2 fichiers';
}
}
}
closedir($dossier);
}
else
{
echo 'Le dossier n\' a pas pu être ouvert';
}
}
}
?>
</main>Je vous remercie d'avance.