如何在PHPExcel上设置垂直文本

时间:2017-07-07 21:19:25

标签: phpexcel

如何设置垂直对齐PHPExcel上的文本

我试过

$phpExcelObject->getActiveSheet()->getStyle('B2:B5')->getAlignment()->setReadorder(
            PHPExcel_Style_Alignment::READORDER_RTL
        );

但它不起作用。

我实际上有:

THE TEXT

但我想要

T
H
E

T
E
X
T

喜欢图片。

Vertical text

2 个答案:

答案 0 :(得分:1)

您想要查看的不是垂直对齐:垂直对齐是内容是否应位于单元格的顶部/中心/底部;也不是RTL,这是从右到左。您也许可以查看文本旋转,但这会旋转文本的方向。

您始终需要将行高设置为自动并启用换行。

$objPHPExcel->getActiveSheet()
    ->getRowDimension(12)
    ->setRowHeight(-1);
$objPHPExcel->getActiveSheet()
    ->getStyle('A1')
    ->getAlignment()->setWrapText(true);

这样它就会扩展到文字的实际尺寸。

然后一个选项是在设置单元格值之前在字符串中的每个字符后添加一个换行符:

$value = "THE TEXT";
$objPHPExcel->getActiveSheet()
    ->setCellValue('A1', implode("\n", str_split($value)));

答案 1 :(得分:1)

我知道你的问题是什么

我为您提供了解决方案,您仍然在代码中使用 getAlignment()->setWrapText(true);,但是您可以为您想要的每个值添加填充为 "\n" 的变量。

例如:

 $n= "\n";

 $objPHPExcel->getActiveSheet()->setCellValue('A','T'.$n.'E'.$n.'S'.$n.'T');

 $objPHPExcel->getActiveSheet()->getStyle('A')->getAlignment()->setWrapText(true);

结果如下:

T

小号

希望这个回答能帮到你。