2011-10-14 5 views
1

Utilisation de PHP pour extraire des données de SQL, puis créer un fichier .csv sur le serveur pour l'envoi par e-mail/téléchargement via fputcsv. Tout fonctionne bien autrement que d'essayer d'obtenir une nouvelle ligne dans un champ dans Excel (2003).sauts de ligne dans les données pour Excel 2003

je reçois Product1Product2Product3 dans la cellule quand j'ai besoin

Product1 
Product2 
Product3 

J'ai essayé des guillemets simples, guillemets doubles, lignocellulosiques et CRs je disapearing rapidement mon propre arrière. Donc, la question est - quel caractère dois-je entrer dans le fichier CSV pour y parvenir?

Il doit travailler dans Excel

[Solution] - le problème se trouvait quelque part en passant le \ r \ n vers Excel par le fputcsv PHP - Je ne pouvais pas y parvenir en toute sorte de mode (beaucoup d'ajouter le \ r \ n désiré à mes données réelles de la cellule par exemple Product1 \ r \ n) La suggestion d'utiliser $ lfcr = chr (10). chr (13); travaillé la première fois autour. Je suppose que c'était plus d'un PHP plutôt que d'une question Excel - merci à toutes les réponses.

+0

Je suis presque sûr que vous avez essayé, mais juste pour être plus sûr, avez-vous essayé le « \ n »? –

+0

Il semble qu'il y ait déjà une réponse à votre problème là: [fichier CSV pour Excel Génération, comment avoir une nouvelle ligne à l'intérieur d'une valeur] [1] [1]: http://stackoverflow.com/ questions/1241220/generate-csv-file-pour-excel-comment-avoir-une-nouvelle-ligne-dans-une-valeur – Aweb

+0

@Aweb - été à celui-là déjà –

Répondre

6

Il s'agit plus d'une question Excel que d'une question PHP. Ce que vous mettez dans le fichier csv doit être compris par Excel, c'est pourquoi \ r \ n ne fonctionnera pas.

Utilisez cette

$lfcr = chr(10) . chr(13); 

Puis append $lfcr à la fin de chaque ligne.

+0

Celui-ci a travaillé pour moi –

+0

Content de l'entendre. – vascowhite

+0

Fonctionne bien! J'ai utilisé $ item = str_replace ("\ n", chr (13), $ item); 'pour remplacer les nouvelles lignes avant d'utiliser fputcsv. En utilisant les deux caractères (10 et 13), deux lignes ont été ajoutées dans la cellule Excel. –

1

Pour les sauts de ligne dans un champ dans un fichier CSV, il vous suffit d'entourer le champ de guillemets et de préfixer un = comme dans l'exemple suivant. les sauts de ligne lui-même peut être soit \r\n ou tout simplement \n:

id;product;price 
1;iMac;2.99 
2;="product 
with 
linebreaks";1.99 
3;Bananaphone;999.99 
+0

+1 pour la réponse correcte. Je veux un Bananaphone! – DaveRandom

+0

Bananaphone me semble bon aussi - merci pour la réponse - voir la solution que j'ai trouvé de Vascowhite - je ne pouvais pas obtenir le \ r \ n à précolorer par la fonction PHP dans le fichier csv réel –

+0

hm, un downvote sans Commentaire expliquant la raison. c'est utile. – oezi

Questions connexes