在csv文件单元格中打印新行


printing a new line in a csv file cell

我正在php中生成一个CSV文件。我需要在单元格内的新行中打印文本(我可以在excel中使用Ctrl+Enter1lt>+Enter)。为此,我尝试使用''n'''r',但没有任何帮助。我怎样才能做到这一点?

我正在使用yii扩展ECSVExport生成csv。

我想要这样的输出:

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

警告:这句简短的话不是对这个问题的一般回答。请考虑检查下面的另一个答案。

试试这个

"'n"

内部双引号

在单元格值中使用"'n"(封装在"中),并将"'r'n"用作记录结束标记。如果单元格条目包含多行,则必须将其包含在"

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

(使用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);

或(使用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);