通常情况下,您可以使用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');
}
如何解决这个问题?