2010-10-18 26 views
0

Créer un fichier .xls en utilisant PHP fopenCréer un fichier Excel en utilisant PHP compatible pour 2007 et 2003

écrire et ajouter le contenu au fichier. Fonctionne bien avec Excel 2003.

Mais excel 2007 montrant une alerte avant l'ouverture en tant que type non pris en charge.

Si je crée fichier avec l'extension .xlsx, il ne s'ouvre en 2003.

Y at-il moyen standard qui fonctionne très bien dans les deux versions 2003 et 2007.

Répondre

0

Quel format écrivez-vous réellement? L'écriture d'un fichier Excel ne consiste pas simplement à donner un fichier arbitraire à une extension de xlsx ou xls. Pour commun, vous pouvez écrire un fichier xls BIFF5 ou BIFF8 (toutes les versions d'Excel post 95 le liront), ou il existe le format Excel 2003 XML, qui peut être ouvert par Excel 2003 et Excel2007 (et Excel 2010 aussi).

+0

en créant un fichier .xls, écrire le contenu dans le fichier en tant que tab séparé. – zod

+0

@zod - Non, vous ne créez pas de fichier xls, vous créez un fichier délimité par des tabulations ... ne lui donnez pas d'extension xls: Excel 2007 vous dit en gros que vous lui mentez, que ce que vous prétendez est un fichier xls n'est pas une telle chose. Essayez d'écrire en tant que valeur séparée par des virgules plutôt qu'en séparant les onglets, et en lui donnant une extension de .csv (Excel devrait l'ouvrir sans problème), ou créez un vrai fichier xls BIFF5 ou BIFF8. –

+0

oui. C'est la seule façon que j'ai maintenant. – zod

0

Si vous n'avez pas besoin de formatage ou même de plusieurs feuilles, la solution la plus simple consiste simplement à créer un fichier séparé par des virgules. (.csv) 2003 et 2007 peuvent ouvrir ces très bien. C'est aussi beaucoup plus facile à gérer en PHP

+0

pas ce qu'il a demandé, mais c'est vrai! Tant que vous n'avez pas besoin de générer des fichiers XLS complexes (y compris des feuilles différentes et d'autres méta) CSV est le chemin à parcourir, encore, je suppose que cela aurait plus de sens comme un commentaire – Hannes

+0

en train d'écrire des fichiers séparés par des onglets pour Fichiers .xls. Ce n'est pas pur xls je sais. Alors comment puis-je écrire du contenu dans un fichier xls pur? – zod

+0

Il suffit de l'enregistrer en tant que. XLS ne le rend pas. XLS ... Je suis surpris que cela fonctionne à tous. Si vous changez l'extension en .csv (même avec une tabulation séparée), il faut importer en 2007 – Cfreak

1

Utilisez PHPExcel. C'est gratuit et peut lire/écrire des fichiers Excel 03/07 directement. Il y a Spreadsheet_Excel_Writer dans la bibliothèque PEAR, mais il est essentiellement mort et ne supporte que l'écriture de fichiers BIFF5, ce qui correspond à Excel '95 ('97? Pas sûr ...)

+0

Pour référence future, BIFF5 est Excel5/95, BIFF8 est Excel97/2003 –

0

Je parie qu'il veut faire la même chose que je veux: créer un fichier délimité par des tabulations (au lieu de délimiter par des virgules), pour éviter de traiter avec des apostrophes ou des virgules avec les cellules. Juste $ field_contents. "\ t". $ next_field_contents

Nous savons que si nous créons un fichier délimité par des virgules avec l'extension CSV, le navigateur l'enverra à Excel (en quelque sorte). Ce que je veux (et le questionneur veut probablement) est un moyen de:

  1. produire un fichier
  2. tabulations ont le navigateur indiquer au système d'exploitation d'avoir Excel l'ouvrir
  3. (mais pas demander au l'utilisateur des questions, par exemple, sur le formatage)

Ceux qui ne savent pas comment faire cela, s'il vous plaît shush! Mais si quelqu'un sait si c'est possible ou non, parlez s'il vous plaît !!!!