Convertir un fichier exel pour .txt en CSV avec php ?

Eléphant du PHP | 106 Messages

12 juin 2012, 21:43

Bonjour,

comment faire pour convertir un fichier exel pour .txt en CSV avec php ?

Petit nouveau ! | 7 Messages

13 juin 2012, 08:41

il y a un truc simple,
quand tu es sur ton fichier, tu fait enregistrer sous, et tu choisis le format .csv, normalement sa marche.

EDIT : je croyait que tu demandais pour pouvoir faire des traitement dessus en php, du coup en php je ne sais pas :( désoler

Mammouth du PHP | 2278 Messages

13 juin 2012, 09:49

Je pense qu'on attend encore le kamikaze qui écrira le module excel.php qui fera ce travail.
À ma connaissance, on passe par Excel (ou par OpenOffice Calc)
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphant du PHP | 171 Messages

13 juin 2012, 15:49

comment faire pour convertir un fichier exel pour .txt en CSV avec php ?
C'est assez ambiguë.
Le bon jugement s'apprend par l'expérience qui s'acquiert en partie par le mauvais jugement.

Mammouth du PHP | 2278 Messages

13 juin 2012, 16:26

C'est lumineux:
dans la mesure où il existe des fonctions csv, il est naturel de se demander s'il en existe une qui sait lire le format excel.

Il existe de fait, que je n'ai pas testé:
http://phpexcel.codeplex.com/
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphant du PHP | 106 Messages

16 juin 2012, 17:39

ma problématique est simple et clair car aujourd'hui je suis obligé de faire manuellement la conversion du fichier excel vers csv avant de le transférer dans ma base :cry: :cry: ,

Alors comment faire pour le faire automatiquement ?

Merci de votre aide

Eléphant du PHP | 171 Messages

16 juin 2012, 18:51

Je te conseille de regarder la librairie proposé par sirakawa, j'ai vite fait regardé les exemples dans la documentation, et je pense que ça fait bien ce que tu recherches. A toi de comprendre le fonctionnement de la librairie maintenant. :wink:
Le bon jugement s'apprend par l'expérience qui s'acquiert en partie par le mauvais jugement.

Petit nouveau ! | 8 Messages

20 juin 2012, 11:45

Bonjour,

J'ai déjà travailler un peu ce genre de sujet et dans ce cas je me fis toujours à ma bible à savoir php.net ...

Et là tu as des fonctions intéressantes comme

http://fr2.php.net/manual/fr/function.fputcsv.php qui te permet d'écrire un fichier csv que tu peux utiliser de cette façon :

Code : Tout sélectionner

$list = array ( array('aaa', 'bbb', 'ccc', 'dddd'), array('123', '456', '789'), array('"aaa"', '"bbb"') ); $fp = fopen('file.csv', 'w'); foreach ($list as $fields) { fputcsv($fp, $fields); } fclose($fp);
au préalable tu peux ouvrir ton fichier texte avec un fopen :

http://fr2.php.net/manual/fr/function.fopen.php

du genre :

Code : Tout sélectionner

<?php $handle = fopen("c:\\folder\\resource.txt", "r"); ?>
donc si tu as une structure bien établie dans ton fichier texte ... tu mouline tes infos dans un tableau et après tu peux ecrire avec la fonction fputscsv

Voilà, espérant que cela peux t'avancer ...

Mammouth du PHP | 2278 Messages

20 juin 2012, 13:30

certes, mais au départ on a un fichier excel et le problème premier est de lire ce fichier excel avec php.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Denayer
Invité n'ayant pas de compte PHPfrance

08 nov. 2012, 03:02

Il y a une class pour ca (PHPExcell)
Du coup il n'y a plus besoin de convertir en csv.

un petit exemple d'utilisation

Code : Tout sélectionner

<?php require_once 'Classes/PHPExcel/IOFactory.php'; $objPHPExcel = PHPExcel_IOFactory::load($emplacement_du_fichier_xls_uploade_sur_le_serveur); $sheet = $objPHPExcel->getSheet(0); // On boucle sur les lignes $nbline = 0; foreach($sheet->getRowIterator() as $row) { // On boucle sur les cellules de la ligne $nbcol=0; foreach ($row->getCellIterator() as $cell) { $col = ($cell->getValue()); $col = preg_replace('/;/',' ',$col ); //valeur de la cellule $nbcol++; } $nbline ++; } echo "il y a $nbline ligne dans le fichier xls<br/>"; echo "il y a $nbcol dans le fichier xls<br/>"; ?>
Combiner ca avec un array et tu en fait ce que tu veux.