web-dev-qa-db-ja.com

csvファイルセルに新しい行を印刷する

PHPでCSVファイルを生成しています。セル内の新しい行にテキストを印刷する必要があります(Excelでこれを使用できます) Ctrl+Enter または Alt+Enter)。そのため、'\n''\r'を使用してみましたが、何も役に立ちませんでした。どうすればこれを達成できますか?

yii extension ECSVExport を使用してcsvを生成しています。

次のような出力が必要です。

ID  Value
1   A
    B
2   C
3   E
    FF
    G
4   X
17
Khaleel

これを試して

"\n"

二重引用符の内側

20
Samy Massoud

セル値の内側で_"\n"_(_"_でラップ)および_"\r\n"_をレコード終了マーカーに使用します。セルエントリに複数の行が含まれている場合、mustで囲んで_"_で囲みます。

_$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);
_

または(変数の操作)

_$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);
_

orfputcsv()を使用)

_$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);
_

または(fputcsv()を使用して変数を操作する)

_$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);
_
20
Mark Baker