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 和文本换行的主要内容,如果未能解决你的问题,请参考以下文章