par
biddal » 07 déc. 2017, 11:19
Bonjour voilà j'ai mon code qui lorsqu'il arrive sur un certain fichier nommé 201705031017, crée un nouveau fichiers excel. Cela fonctionne or je souhaiterai qu'il copie le contenu du fichier 201705031017 dans le nouveau fichier!
Comment faire ?
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';
}
$cpt=0;
if($ok==1)
{
echo "<div id=\"rslt\">";
if($nb_fichier<1)
{
echo 'Il n\'y a aucun fichier dans le dossier';
}
else
{
echo 'Il y a <strong> ' . $nb_fichier . ' </strong> fichier(s) dans le dossier<br>';
echo "</div>";
//On utilise la bibliothéque Excel
require_once('./Lib_excel/Classes/PHPExcel.php');
set_time_limit(2500);
if($dossier = opendir('./Fichiers_excel'))
{
while(false !== ($fichier = readdir($dossier)))
{
//echo $fichier;
if($fichier != '.' && $fichier != '..')
{
try {
$inputFileType = PHPExcel_IOFactory::identify("./Fichiers_excel/".$fichier);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load("./Fichiers_excel/".$fichier);
$sheet = $objPHPExcel->getActiveSheet() ;
} catch(Exception $e) {
die('<br>Error loading file "'.pathinfo($fichier,PATHINFO_BASENAME).'": '.$e->getMessage());
}
$file = substr(pathinfo($fichier, PATHINFO_FILENAME), 0);
//echo $file2;
if($file==201705031017)
{
//Création d'un nouveau fichier Excel
//Fichier nécessaire à la génération du tableur
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_rslt = $workbook->getActiveSheet();
//Copie des données du premier fichier ouvert
$sheet1 = $sheet->copy();
$sheet_rslt = clone $sheet1;
//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);
echo "first<br>";
}
else
{
if($file<=201707181524)
{
//echo "moins<br>";
$cpt++;
}
else
{
//echo "plus<br>";
$cpt++;
if ($cpt==1208)
break;
}
unset($sheet);
$objPHPExcel->disconnectWorksheets();
unset($objPHPExcel);
//unlink("./Fichiers_excel/".$fichier); supprimes les fichiers!
//Workbooks($fichier).Close ;
}
}
}
closedir($dossier);
echo $cpt;
}
else
{
echo 'Le dossier n\' a pas pu être ouvert';
}
}
}
?>
</main>
J'ai bien essayé avec les sheet->copy ou les clone sheet mais cela ne fonctionne pas! Or dans l’exemple dans la librairie de EPHPExcel ils utilisent bien un clone.
Merci d'avance
Bonjour voilà j'ai mon code qui lorsqu'il arrive sur un certain fichier nommé 201705031017, crée un nouveau fichiers excel. Cela fonctionne or je souhaiterai qu'il copie le contenu du fichier 201705031017 dans le nouveau fichier!
Comment faire ?
Voici mon code:
[code]
<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';
}
$cpt=0;
if($ok==1)
{
echo "<div id=\"rslt\">";
if($nb_fichier<1)
{
echo 'Il n\'y a aucun fichier dans le dossier';
}
else
{
echo 'Il y a <strong> ' . $nb_fichier . ' </strong> fichier(s) dans le dossier<br>';
echo "</div>";
//On utilise la bibliothéque Excel
require_once('./Lib_excel/Classes/PHPExcel.php');
set_time_limit(2500);
if($dossier = opendir('./Fichiers_excel'))
{
while(false !== ($fichier = readdir($dossier)))
{
//echo $fichier;
if($fichier != '.' && $fichier != '..')
{
try {
$inputFileType = PHPExcel_IOFactory::identify("./Fichiers_excel/".$fichier);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load("./Fichiers_excel/".$fichier);
$sheet = $objPHPExcel->getActiveSheet() ;
} catch(Exception $e) {
die('<br>Error loading file "'.pathinfo($fichier,PATHINFO_BASENAME).'": '.$e->getMessage());
}
$file = substr(pathinfo($fichier, PATHINFO_FILENAME), 0);
//echo $file2;
if($file==201705031017)
{
//Création d'un nouveau fichier Excel
//Fichier nécessaire à la génération du tableur
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_rslt = $workbook->getActiveSheet();
//Copie des données du premier fichier ouvert
$sheet1 = $sheet->copy();
$sheet_rslt = clone $sheet1;
//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);
echo "first<br>";
}
else
{
if($file<=201707181524)
{
//echo "moins<br>";
$cpt++;
}
else
{
//echo "plus<br>";
$cpt++;
if ($cpt==1208)
break;
}
unset($sheet);
$objPHPExcel->disconnectWorksheets();
unset($objPHPExcel);
//unlink("./Fichiers_excel/".$fichier); supprimes les fichiers!
//Workbooks($fichier).Close ;
}
}
}
closedir($dossier);
echo $cpt;
}
else
{
echo 'Le dossier n\' a pas pu être ouvert';
}
}
}
?>
</main>[/code]
J'ai bien essayé avec les sheet->copy ou les clone sheet mais cela ne fonctionne pas! Or dans l’exemple dans la librairie de EPHPExcel ils utilisent bien un clone.
Merci d'avance