PHPExcel单元格高度仅适用于空单元格

时间:2016-05-09 11:49:41

标签: php phpexcel

我已经在谷歌上阅读了几个例子,但我找不到类似我的问题。

要设置我使用的单元格高度:
$objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(-1);

这会将单元格高度设置为" auto"。
我想文本/数据会决定它的高度?!

我尝试了几个值,如:4,10等。

奇怪的是,只有没有任何文字的单元格才会改变高度。

我在想:文字/字体是否有保证金最高值?
我看不到任何类型的高度限制,因此不应该是概率。

CODE

//Set font Size
$objPHPExcel->getActiveSheet()->getStyle("A1:I".$highestRow)->getFont()->setSize(4);

//Set Row size
$objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(6);

示例

enter image description here

我希望单元格高度与文本一样高!

2 个答案:

答案 0 :(得分:0)

行高限制实际为409.50(546像素),这是OfficeOpenXML(xlsx)格式的MS Excel限制。简单来说,PHPExcel并没有强制执行它。

如果您查看一些示例(例如01Simple.php),您会看到第8行和第10行自动设置的高度。在您的情况下,看起来好像有了换行符您在单元格中设置的文字之前的字符,因此它们会跨越2行,并且自动高度会相应地设置自身。

答案 1 :(得分:0)

为了解决我的问题,我必须在我设置单元格值的循环中设置每一行高度。

//Loop out data into cells (create excel)
while($value = $stmt->fetch()){

    //Set start Column
    $column = "A";

    //Set row height
    $objPHPExcel->getActiveSheet()->getRowDimension($row)->setRowHeight(6);

//Set cell values
    $objPHPExcel->getActiveSheet()->SetCellValue($column++.$row, $value['value']);