PHPExcel 和文本换行

Posted

技术标签:

【中文标题】PHPExcel 和文本换行【英文标题】:PHPExcel and Text Wrapping 【发布时间】:2012-07-03 05:18:09 【问题描述】:

我知道这行代码会使单元格文本换行:

$objphpExcel->getActiveSheet()->getStyle('D1')->getAlignment()->setWrapText(true);

'D1' 是选定的单元格。

有没有办法让整个 Excel 工作表自动包装所有内容,而不是对我需要包装的每个单元格使用此代码?

或者是否有更好的实践技术可用于指定列?

【问题讨论】:

您是否考虑过循环到每个单元格并应用包装器? 循环是非常低效的,所以我不会推荐它,但是为一系列单元格设置样式是一个简单的调用 【参考方案1】:
$objPHPExcel->getDefaultStyle()->getAlignment()->setWrapText(true);

【讨论】:

这里可能是最好的答案。我不知道发布问题时是否存在这种方法,但这绝对是一种在文档的所有单元格中换行的绝妙方法。【参考方案2】:

应用于列

$highestRow = $$objPHPExcel->getActiveSheet()->getHighestRow();
for ($row = 1; $row <= $highestRow; $row++)
    $sheet->getStyle("D$row")->getAlignment()->setWrapText(true);

【讨论】:

可以使用范围时无需换行。 getStyle('A1:AI100') @MH 如何包装多个列,而不是范围【参考方案3】:

应用于一个范围:

$objPHPExcel->getActiveSheet()->getStyle('D1:E999')
    ->getAlignment()->setWrapText(true); 

应用于列

$objPHPExcel->getActiveSheet()->getStyle('D1:D'.$objPHPExcel->getActiveSheet()->getHighestRow())
    ->getAlignment()->setWrapText(true); 

【讨论】:

我也面临同样的问题。它工作得很好,但它显示了字符串的最后一个单词?我想显示可以放入单元格的前几个字符? @virus - 那么也许您还需要设置垂直对齐方式 请注意,将范围设置为 999 会增加文件大小。 如果您的行数少于 999,它只会增加文件大小,请调整该值以适合您的电子表格的大小

以上是关于PHPExcel 和文本换行的主要内容,如果未能解决你的问题,请参考以下文章

如何在phpexcel中设置自动高度(自动换行)?

phpexcel导出阿里云图片

phpexcel使用

Phpexcel使用

thinkphp整合系列之phpexcel生成生成excel文件

用phpexcel 导出不能打开问题