LibreOffice Calc中的自动高度

时间:2014-08-22 09:28:54

标签: phpexcel libreoffice-calc

通常情况下,您可以使用PHPExcel格式化自动高度行,如下所示:

$file = new PHPExcel();
$file->getActiveSheet()->setCellValue('A1', 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.');
$file->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
$file->getActiveSheet()->getStyle('A1')->getAlignment()->setWrapText(true);
$writer = PHPExcel_IOFactory::createWriter($file, 'Excel2007');
$writer->save(str_replace('.php', '.xlsx', __FILE__));

问题是当您使用LibreOffice Calc打开此类文件时,此功能无法正常工作。您必须选择单元格,然后选择Format Cells...并点击OK

这似乎是known bug,但不幸的是,通过将以下else块添加到Classes\PHPExcel\Writer\Excel2007\Worksheet.php at line 1004中,建议的解决方案似乎无效:

else {
    $objWriter->writeAttribute('customHeight', 'false');
    $objWriter->writeAttribute('ht', '0');
}

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

这似乎是Libre Office中的一个已知错误。详细讨论:https://phpexcel.codeplex.com/discussions/429322