Gestion de fichier exel avec PHP

Fermé
Nemo - 13 août 2009 à 15:48
 Nemo - 13 août 2009 à 15:50
Bonjour,
je créer un site dont un des script est chargé de créer un fichier excel. J'ai trouvé sur le site du zéro (car il faut bien l'avouer je suis un zéro ^^), que j'ai recopier en adaptant un peu. Je veux que mon script, quand il est appelé, ouvre un fichier excel, inscrive des trucs dedans (les paramètres en POST) et sauvegarde ce fichier avec un nom particulier (que j'ai mis en gras). Voici mon code :

<?php

//on récupère les paramètres
$nom=$_POST["nom"];
$adresse=$_POST["adresse"];
$ville=$_POST["ville"];
$code_postal=$_POST["code_postal"];
$pays=$_POST["pays"];
$num_tva=$_POST["num_tva"];
$num_facture=$_POST["num_facture"];
$nom_facture=$_POST["nom_facture"];

//-----CREATION D'UNE FACTURE EXCEL-----//

// On définie une constante FILENAME comprenant le nom du fichier à générer et son emplacement.
define("FILENAME","files/company/".$nom."/factures/facture_".$num_facture."_".$nom_facture.".xls");

if(file_exists(FILENAME)) // On vérifie que le fichier existe.
{
unlink(FILENAME); // Suppression du fichier précédemment créé s'il existe.
}

$excel=new COM("Excel.application"); //Instanciation de l'objet COM
$excel->sheetsinnewworkbook=1;//1 seule feuille de calcul dans le document
$excel->Workbooks->Add();//Ajout d'un classeur
$book=$excel->Workbooks(1);//$book contient le classeur actif
$sheet=$book->Worksheets(1);//$sheet contient la feuille active (comme son nom l'indique, feuille en anglais)
$sheet->Name="Nom de votre feuille";//Attribution d'un nom à la feuille

//ECRITURE DANS LE FICHIER EXCEL

$cell=$sheet->Range('B1'); // On sélectionne la case B1
$cell->value="COUCOU"; // On met la valeur de $variable dans la cellule B1, peu importe le type.

//FIN ECRITURE

$book->saveas(FILENAME);//Sauvegarde du fichier //Ligne 42
unset($sheet);//Libération de $sheet
unset($book);//Libération de $book
$excel->Workbooks->Close();//Fermeture du classeur
$excel->Quit();//On quitte Excel
unset($excel);//Libération de l'instance $excel


header('Location : accueil.php');
?>

en retour, j'ai ce message d'erreur :

Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft Office Excel<br/><b>Description:</b> Microsoft Office Excel ne peut accéder au fichier ��C:\WINDOWS\system32\config\systemprofile\Mes documents\files\company\Akka Technologie\factures\21930000��. Plusieurs raisons possibles : � Le nom du fichier ou le chemin n'existe pas. � Ce fichier est actuellement utilisé par un autre programme. � Le classeur que vous essayez d'enregistrer porte le même nom qu'un classeur actuellement ouvert.' in C:\wamp\www\projet_jemos\traitement_facture2.php:42 Stack trace: #0 C:\wamp\www\projet_jemos\traitement_facture2.php(42): variant->saveas('files/company/A...') #1 C:\wamp\www\projet_jemos\accueil.php(55): include('C:\wamp\www\pro...') #2 {main} thrown in C:\wamp\www\projet_jemos\traitement_facture2.php on line 42

Je ne comprend pas ce message d'erreur car d'une part :
Le nom du fichier ou le chemin n'existe pas -> effectivement je lui demande de le créer
et surtout :
C:\WINDOWS\system32\config\systemprofile\Mes documents\files\company\Akka Technologie\factures\21930000�� d'où vient cette adresse, pourquoi il va chercher dans le system32 alors que je suis avec WAMP??

merci de votre aide...
A voir également:

1 réponse

ah oui je précise que j'utilise excel 2007 sur mon PC... je ne sais pas si ça change qqc...
0