Je génère un fichier CSV en php. J'ai besoin d'imprimer le texte sur une nouvelle ligne à l'intérieur d'une cellule (je peux le faire dans Excel en utilisant Ctrl+Enter ou Alt+Enter). Pour cela, j'ai essayé d'utiliser '\n'
, '\r'
, mais rien n'y fait. Comment puis-je atteindre cet objectif?
J'utilise yii extension ECSVExport pour générer csv.
Je veux une sortie comme celle-ci:
ID Value
1 A
B
2 C
3 E
FF
G
4 X
Essaye ça
"\n"
double guillemet intérieur
Utilisez "\n"
À l'intérieur de la valeur de la cellule (enveloppé dans "
) Et "\r\n"
Pour votre marqueur de fin d'enregistrement. Si votre entrée de cellule comprend plusieurs lignes, vous devez l'enfermer dans "
$fh = fopen('test1.csv', 'w+');
fwrite($fh, "sep=\t" . "\r\n");
fwrite($fh, 'A' ."\t" . 'B' . "\t" . 'C' . "\r\n");
fwrite($fh, 'D' ."\t" . "\"E\nF\nG\"" . "\t" . 'H' . "\r\n");
fclose($fh);
ou (travailler avec des variables)
$varA = 'A';
$varB = 'B';
$varC = 'C';
$varD = 'D';
$varE = 'E';
$varF = 'F';
$varG = 'G';
$varH = 'H';
$fh = fopen('test2.csv', 'w+');
fwrite($fh, "sep=\t"."\r\n");
fwrite($fh, $varA . "\t" . $varB . "\t" . $varC . "\r\n");
fwrite($fh, $varD . "\t" . "\"$varE\n$varF\n$varG\"" . "\t" . $varH . "\r\n");
fclose($fh);
o (en utilisant fputcsv()
)
$fh = fopen('test3.csv', 'w+');
fwrite($fh, "sep=\t" . "\r\n");
fputcsv($fh, array('A', 'B', 'C'), "\t");
fputcsv($fh, array('D', "E\nF\nG", 'H'), "\t");
fclose($fh);
ou (en utilisant fputcsv()
et en travaillant avec des variables)
$varA = 'A';
$varB = 'B';
$varC = 'C';
$varD = 'D';
$varE = 'E';
$varF = 'F';
$varG = 'G';
$varH = 'H';
$fh = fopen('test4.csv', 'w+');
fwrite($fh, "sep=\t" . "\r\n");
fputcsv($fh, array($varA, $varB, $varC), "\t");
fputcsv($fh, array($varD, "$varE\n$varF\n$varG", $varH), "\t");
fclose($fh);