2011-05-11 58 views
39

我有PHP的问题出类拔萃,使细胞中的新线路,如何使用phpexcel

我想使新的生产线在一个小区,但我做不到,我已经尝试使用\ n或< BR/>但它没有工作。这我的代码:

$objPHPExcel->getActiveSheet()->setCellValue('H5', 'Hello\nWorld'); // i need this show in two line 
$objPHPExcel->getActiveSheet()->getStyle('H5')->getAlignment()->setWrapText(true); 

fyi:我的格式excel是xls不是xlsx。 非常感谢:)

+2

您的实际代码参考单元格H5或H% – 2011-05-11 06:43:46

+0

@Mark Ba​​ker,对不起,我只是输入错误。实际上这是针对单元格H5的。我只是更新我的问题,非常感谢:) – bungdito 2011-05-11 06:47:03

+1

好的,第二个问题(看到你在编辑时改变它):'你好\ nWorld'或'你好\ nWorld'?标准的PHP引用字符串适用:双引号与\ n – 2011-05-11 08:07:59

回答

82
$objPHPExcel->getActiveSheet()->setCellValue('H5', "Hello\nWorld"); 
$objPHPExcel->getActiveSheet()->getStyle('H5')->getAlignment()->setWrapText(true); 

对我的作品......

你应该总是使用double quotes当你在一个PHP字符串添加转义序列。

+4

有所不同如果您正在对通过合并其他单元格创建的单元格执行此操作,则应该指定所有单元格的原始映射。例如,如果你通过合并B2-E6创建B2,那么getStyle的参数是'B2:E6' – jerrygarciuh 2013-11-23 03:45:07

+0

这是在你的例子中工作,但我想输出像Hello \ n世界DEMO(新行后你好)。但这里两个新行创建如此我如何解决这个问题? – himansu 2015-07-31 07:18:38

+0

适用于双引号。 – 2017-08-30 05:50:21

19

你应该使用“R”打入新线到Excel使用PHP

,当你在一个PHP字符串添加转义序列使用双引号。基于猎食

$objPHPExcel->getActiveSheet()->setCellValue('H5', "Hello\r World"); 
    $objPHPExcel->getActiveSheet()->getStyle('H5')->getAlignment()->setWrapText(true); 
+3

+1 \ r这应该是被接受的答案。 \ r为我节省一天\ r谢谢。 – 2013-12-02 16:00:47

+1

\ n对我来说工作正常 – 2014-03-10 12:05:17

+0

您可能想尝试PHP_EOL,因为新行分隔符是特定于OS的。 – 2015-04-13 07:20:18

8

改进的答案和其他

$objPHPExcel 
    ->getActiveSheet() 
    ->setCellValue('H5', "Hello".PHP_EOL." World"); 

$objPHPExcel 
    ->getActiveSheet() 
    ->getStyle('H5') 
    ->getAlignment() 
    ->setWrapText(true); 
+0

'PHP_EOL'在这种情况下是无用的,因为它会根据运行php脚本的操作系统(很可能是linux/unix服务器)提供EOL字符,但该文件很可能会打开Windows,默认的EOL将会不同。 – mkilmanas 2018-03-02 14:08:51

-1

为了实现下一行,但同一小区forxcel出口,这是最简单的解决方案。

<tr> 
    <td style="wrap-text: true"> 
     Test 
     <br /> 
     Test2 
    </td> 
</tr> 
+0

测试
的Test2 – 2017-12-19 05:30:38