Convertir un fichier xlsx en csv

Invité
Invité n'ayant pas de compte PHPfrance

24 juin 2015, 14:42

Bonjour, voici mon problème, je suis censé récupérer et utiliser les valeurs d'un fichier xlsx, or certaines données ne sont pas lisibles, donc j'ai essayé de convertir le fichier csv, mais je n'y arrives pas, j'ai vu qu'il était possible de le faire grâce à une fonction sur github, mais pour l'installer il m'est nécessaire d'utiliser la commande "sudo", or je n'en ais pas les droits ^^'

Merci d'avance pour votre aide :)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

24 juin 2015, 20:16

Bonjour,

Tu peux utiliser la librairie PHP Excel Reader qui devrait te permettre de lire des fichiers XLSX facilement :
https://code.google.com/p/php-excel-reader/
Quand tout le reste a échoué, lisez le mode d'emploi...

Invité
Invité n'ayant pas de compte PHPfrance

25 juin 2015, 09:52

Salut, merci pour ce fichier, j'ai cependant un peu de mal à m'en servir ^^'.. même avec l'include, il ne reconnaît pas la fonction "read" quand je tentes de l'utiliser
$fico = fopen('C:\Users\sesa358990\Documents\Hugo\stockage\\'.$nomDestination, "a+");
		$fic = read($fico);
		if($fic)
		{
			echo "CA MARCHE !!!";
		}
		while($tab=fgetcsv($fic,1024,';'))
		{
Quand je fais cela, (mise à part le fait que le reste est sûrement faux aussi xD..)
Il bloque déjà à l'instruction "$fic = read($fico);" ^^'...

Mammouth du PHP | 688 Messages

25 juin 2015, 13:18

c'est http://php.net/manual/en/function.fread.php la fonction qui existe en php
mais c'est pour un csv, or le but est de traiter un fichier xlsx, donc plutôt :
$data = new Spreadsheet_Excel_Reader("test.xls");

Invité
Invité n'ayant pas de compte PHPfrance

25 juin 2015, 13:59

D'accord ! merci ^^.. cependant, je ne sais pas pourquoi, mais (même avant d'avoir rajouté cette instruction, j'avais déjà ce bug d'afficher) : "Deprecated: Assigning the return value of new by reference is deprecated" , et il m'indique la ligne 916 de la page excel_reader2 , soit :
$this->_ole =& new OLERead();
Comme s'il n'arrivait pas à instancier son objet, pourtant il ne me semble pas avoir mal intégré l'instruction que tu m'avais données ^^' :
$fic = new Spreadsheet_Excel_Reader('C:\Users\sesa358990\Documents\Hugo\stockage\\'.$nomDestination);
		if($fic)
		{
			echo "CA MARCHE !!!";
		}
		while($tab=fgetcsv($fic,1024,';'))