Page 1 sur 1

excel ne reconnait pas mes csv

Posté : 09 mai 2023, 10:42
par stef31
Bonjour à tous,

j'ai créé un ficher csv

à la fin de ce dernier je tape

Code : Tout sélectionner

fputs($ouvre, $bom =( chr(0xEF) . chr(0xBB) . chr(0xBF) )); //pour qu'excel reconnaisse le format UTF 8 fwrite($ouvre,$final); fclose($ouvre);
Malheureusement, quand je fais ça Excel (et pas seulement) ne reconnait plus le format csv et propose text unicode par défaut, ce qui est assez embêtant.

Je pourrai évidemment simplement enregistrer sous , et cocher csv point virgule sur excel, ce qui fonctionne, mais ce n'et pas le but.

Merci, stef

Re: excel ne reconnait pas mes csv

Posté : 09 mai 2023, 10:49
par @rthur
Je pense que ta première ligne n'est pas correcte, tu mets le résultat de ton affectation, et non pas la valeur du BOM

Re: excel ne reconnait pas mes csv

Posté : 09 mai 2023, 10:51
par stef31
j'ai également tenté avec

Code : Tout sélectionner

fprintf($ouvre, chr(0xEF).chr(0xBB).chr(0xBF));

Re: excel ne reconnait pas mes csv

Posté : 09 mai 2023, 10:56
par stef31
à savoir que dans les deux cas cela corrige bien les accents etc, mais ne garde pas le format csv
si j'enlève la ligne, je retrouve le format csv mais je n'ai plus la correction des accents

Re: excel ne reconnait pas mes csv

Posté : 09 mai 2023, 11:16
par Spols
et
fputs($ouvre, chr(0xEF).chr(0xBB).chr(0xBF));
?
car fprintf est pour une chaine formatée

Dans tous les cas, ouvre ton fichier avec un éditeur de texte pour voir si il parait "normal"

Re: excel ne reconnait pas mes csv

Posté : 09 mai 2023, 11:22
par stef31
Oui il parait normal et quand on compare le fichier généré en php avec le fichier converti en excel il n'y a aucune différence visible à l'œil nu, c'es probablement dans le bom

Re: excel ne reconnait pas mes csv

Posté : 09 mai 2023, 11:23
par stef31
fputs($ouvre, chr(0xEF).chr(0xBB).chr(0xBF)); fait la même chose que les autres

Re: excel ne reconnait pas mes csv

Posté : 09 mai 2023, 13:06
par Saian
Salut, j'ai fait un test fonctionnel chez moi avec ça :
fwrite($handle, chr(0xEF) . chr(0xBB) . chr(0xBF));
Fichier ouvert en mode r ou rb, même résultat.

A noter qu'avec ou sans le marqueur BOM le fichier s'ouvre bien, la seule différence étant la reconnaissance ou non des caractères accentués.

Donc pour ton problème je dirais au doigt mouillé, soit il y a un problème avec le BOM qui a pourtant l'air bon, soit il y a quelque chose dans $final qui pose problème quand le BOM est présent.

Dans tous les cas, une autre idée serait de convertir le contenu en encodage Windows-1252 sans BOM. A tester.