Dans la librairie PHPExcel, c'est bien ça?
J'ai ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 // Try using realpath() if (file_exists($pFilename)) { $returnValue = realpath($pFilename); }
Dans la librairie PHPExcel, c'est bien ça?
J'ai ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 // Try using realpath() if (file_exists($pFilename)) { $returnValue = realpath($pFilename); }
oui pour faire un essais, peux-tu commenter cette ligne et refaire un test
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $returnValue = realpath($pFilename);
Voilà qui est fait... mais le résultat reste le même.
EDIT : j'ai aussi pensé à redémarrer le serveur! Ainsi qu'à vider le cache du navigateur. L'erreur ne vient pas de là...
Ok remet à l'origine.
Essaye ton code avec le fichier Excel suivant
J'ai remis le File.php comme il était avant, j'ai redémarré le serveur. Puis j'ai télécharger le fichier.xls et remplacé le mien par celui-ci, à la racine du code.
Rien n'y fait, j'ai toujours exactement les mêmes erreurs zipArchive.
Tu peux me faire un zip de tout ton brol pour que je teste (fichier, classe etc...).
Gg
Non je ne vais pas pouvoir. Je traite de données confidentielles, et mon code ne doit pas sortir de la boite...
J'ai trouvé une solution de contournement qui a été validée par l'entreprise :
au lieu de créer un nouvel onglet dans un fichier, je créé directement un nouveau fichier. Je n'avais aucun problème pour la génération d'un document MSExcel. Libre à l'opérateur de le déplacer dans un autre document ou de s'organiser différemment.
C'est pas très beau, mais ça fonctionne!
Je te remercie du temps que tu m'as consacré et de l'aide que tu m'as apporté, notamment par le biais de ton super tuto! Mon stage se termine ce soir donc tous ces problèmes sont derrière moi maintenant!
Bonjour à tous,
Tout d'abord merci pour toutes les explications sur l'utilisation de phpexcel, tout fonctionne super bien, on a presque l'impression que la programmation est facile
J'ai une petite question pour finaliser mon code.
Je vous explique : après avoir appuyer sur un bouton, je récupère un fichier excel pour écrire des informations spécifiques de ma base de données. Je voudrais que chaque nouvelles informations s'insèrent les unes après les autres dans mon tableur excel cependant je n'ai pas trouvé comment aller à la ligne.
L'insertion des données marche super bien et après je ne sais pas comment programmer comment faire pour passer à la ligne après chaque entrée.
J'ai vu qu'on pouvait faire un \n ou un \r ou encore rechercher la dernière ligne écrite mais rien ne fonctionne. Je pense que j'oublie de mettre un élément essentiel ou que je ne vais pas dans la bonne direction.
Quelqu'un aurait une idée de la programmation adéquate pour réaliser cette action?
Merci d'avance
Sarah
Comme dans l'article :
1 c'est le numéro de la ligne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $sheet->setCellValueByColumnAndRow(1, 4, 'MaitrePylos');
Merci pour cette réponse mais j'ai utilisé la fonction FromArray($contenu, null, 'A2'); pour insérer mes données où j'ai définit à quel endroit je voulais insérer ma ligne mais comment faire en sorte que la ligne change dès que je rentre un groupe de données.
J'avais pensé mettre quelque chose comme:
Ça n'a pas l'air de fonctionner...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $i = 1; $row = $i++; FromArray($contenu, null, 'A'$row);
Et tu n'as pas d'erreur ?
Pourtant, il manque un concaténation dans ton code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 FromArray($contenu, null, 'A'.$row);//il manquait le point de concaténation
oups j'ai mal réécrit le code.
Maintenant il me dit qu'il y a une erreur de synthaxe dans ma ligne :
$objet = PHPExcel_IOFactory::createReader('Excel2007');
non le souci est ailleurs tu n'as pas plus de code à nous fournir ?
c'est bon j'ai trouvé pourquoi. mais il me rajoute ma ligne de données sur la première ligne pas sur celle qui sera la suivante en théorie (= la ligne 3);
voici mon code :
//CREER UNE LIGNE AVEC TOUTES LES DONNEES
$ligne = array($Donnee1, $Donnee2, $Donnee3, $Donnee4, $Donnee5, $Donnee6, $Donnee7, $Donnee8, '', $Donnee10, $Donnee11, $Donnee12, $Donnee13, $Donnee14, $Donnee15, $Donnee16, $Donnee17, $Donnee18, '', $Donnee19, $Donnee20, $Donnee21, '', $Donnee23);
// FAIRE LE LIEN AVEC LA LIBRAIRE PHPEXCEL
include("PHPExcel/Classes/PHPExcel.php");
include("PHPExcel/Classes/PHPExcel/Writer/Excel2007.php");
//INCREMENTER LES LIGNES
$i = 1;
$row = $i++;
//ECRIRE DANS LE FICHIER EXISTANT Fichier.xlsx
$objet = PHPExcel_IOFactory::createReader('Excel2007');
$excel = $objet->load('Fichier.xlsx');
$sheet = $excel->getActiveSheet(0);
$sheet->FromArray($ligne, null, 'A'.$row);
$writer = PHPExcel_IOFactory::createWriter($excel, 'Excel2007');
$writer->save('Fichier.xlsx');
Bonjour,
J'essaye d'utiliser la librairie PHPExcel avec par exemple le code suivant:
Mais voici le résultat que j'obtiens:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 $workbook = new PHPExcel; $sheet = $workbook->getActiveSheet(); $sheet->setCellValue('A1','MaitrePylos'); $writer = new PHPExcel_Writer_Excel5($workbook); header('Content-type: application/vnd.ms-excel'); header('Content-Disposition:inline;filename=Fichier.xls '); $writer->save('php://output');
Je précise que j'utilise ce code à l'intérieur de jquery ui tabs, et lorsque je le sors des tabs, ça fonctionne à priori. D'après vous, d'où vient le problème ?��ࡱ�;�� ����������������������������������������������������������������������������������������������������������
�����������������������������������������������������������������������������������������������������
���������������������������������������������������������������������������������������������������������������������������������������������
�������������������������������������������������������������������������������������������� ��������������������������������������������������������������������������������������������������������
��������������������������������������������������������������������������������������������������������������������������������������������
�������������������������������������������������������������������������������������������������
��������������������������������������������������������������������������������Oh��+'��0�@Hh�� ���Untitled SpreadsheetUnknown CreatorUnknown Creator@��,�:�@��,�:� � ��B�=�%r8X"1��Calibri���
� ��� � ��� � ��� � ��� � ��� �
��� � ��� � ��� � ��� � ��� � ��� � ��� � ��� � ��� � � � �����8�������������������������������3f������ff���f����������������������������������̙��̙3f�3���������fff����3f3�f333�3�3f33�333�- Worksheet��g���!MaitrePylos � ��*+������&ffffff�?'ffffff�?(�?)�?�"dXX333333�?333333�?U}$ � >�@d��dgg����� ����՜.��+,�0�HPX`hp x�� WorksheetFeuilles de calculRoot Entry�������� �F��,�:���,�:��SummaryInformation(���� �F�Workbook������������ �FgDocumentSummaryInformation8������������ �F�
���������������������������������������������������������������������
Je ne souhaites pas affiché le rendu, mais simplement proposé à l'utilisateur d'enregistrer le fichier.
Merci d'avance.
Tu fournis la réponse
Quand tu appelles le header(), il prend toutce que tu lui passes et notamment tes entêtes jQuery.
La meilleurs solution est d'externaliser ton code PHPExcel et puis dans ta page mettre un lien/bouton vers ce code, tu ne changeras pas de page et ton Excel sera générer.
Mais d'après toi qu'est-ce qui pose problème dans ces entêtes ?
En attendant une réponse c'est ce que j'ai fais du coup ^^
Heu rien, c'est un comportement tout à fait normal.
http://php.net/manual/fr/function.header.php
Ah d'accord.
Merci de ton aide !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager