Bonjour,
Comment peut-on convertir un fichier Excel du format 3.1 au format 8.0 en php.
Merci par avance de vos réponses
Version imprimable
Bonjour,
Comment peut-on convertir un fichier Excel du format 3.1 au format 8.0 en php.
Merci par avance de vos réponses
J'ai essayé ceci :
Mais ca me donne le message d'erreur ci-dessousCode:
1
2
3
4
5
6
7
8
9
10
11 $excel = new COM ("Excel.application") or die ('Impossible d\'ouvrir Excel'); //Instanciation de l'objet COM $Name='c:\test.xls'; $excel->Workbooks->Open(''.$Name.'') // ouvrir xls or die ('Impossible d\'ouvrir le modèle'); $book=$excel->Workbooks(1);//$book contient le classeur actif $excel->Workbooks[1]->SaveAs('c:\test.xls', 45); $excel->Workbooks->Close();//Fermeture du classeur $excel->Quit();//On quitte Excel unset($excel);//Libération de l'instance $excel
Si quelqu'un a une idéeCode:Fatal error: Cannot pass parameter 1 by reference in C:\wamp\www\WebReport\SaveXls.php on line 17
Elle est où la ligne 17 dont parle l'erreur ?
Bonjour,
La ligne 17 correspond
Code:$excel->Workbooks[1]->SaveAs('c:\test.xls', 45);
Hum compare ta ligne 16 et 17 ......
J' fais ceci :
et j'obtiens le message ci-dessous :Code:
1
2
3
4
5
6
7
8
9 $excel = new COM ("Excel.application") or die ('Impossible d\'ouvrir Excel'); //Instanciation de l'objet COM $Name='c:\test.xls'; $excel->Workbooks->Open(''.$Name.'') // ouvrir xls or die ('Impossible d\'ouvrir le modèle'); $book=$excel->Workbooks(1);//$book contient le classeur actif $excel->$book->SaveAs('c:\test.xls', 43); $excel->Workbooks->Close();//Fermeture du classeur $excel->Quit();//On quitte Excel unset($excel);//Libération de l'instance $excel
la ligne 8 correspond toujoues au saveasCode:Catchable fatal error: Object of class variant could not be converted to string in C:\wamp\www\WebReport\SaveXls.php on line 8
C'est presque ça....
En gros là t'as $excel qui est ton une classe... et $book qui est une classe
Si tu met ton classeur 1 dans $book, pas besoin de refaire appel $excel pour faire ton SaveAs()
Donc :
Code:
1
2 $book=$excel->Workbooks(1);//$book contient le classeur actif $book->SaveAs('c:\test.xls', 43);
Merci pour la réponse mais ca marche toujours
ca torune pendant un bon moment, ce qui n'est pas normal car le fichier ne fait que quelques Ko de taille.
finalement la barre de progression dans Internet explorer reste bloquée à 50%
C'est un autre problème alors, mais au moins t'utilise la classe correctement (du moins sans erreur fatale)
Y'a que ça dans ton script ?
oué, y a que ca
Franchement, ca devrait pas être compliqué d'ouvrir, d'enregistrer et de refermer un fichier Excel,
Je comprend pas en VBA ca se fait en 1 seule ligne
Bah non c'est pas forcément compliqué, mais dès le début c'est toi qui te planté au niveau de ton code, ça avait rien avoir avec PHP en lui même :)
j'utilise phpexcelreader / writer, j'ai jamais eu de problèmes.
Jamais utilisé les objets com.
Regarde un peu au niveau de la doc php dans les commentaires si certains en parlent
C'est ce que je fais depuis 2 jours, sans succés
php_Excelwriter : de ce que j'ai compris ce ne permet pas d'ouvrir des fichiers existant
php_reader : j'a pas compris comment enregistrer un fichier existant dans un emplacement déterminé