使用fromArray,setWrapText,setAutoFilter无法在单元格中获得\ n多个新行,以便在Excel5中正确显示

时间:2014-04-10 06:02:19

标签: php phpexcel

我有以下代码

$objPHPExcel->getActiveSheet()->fromArray($DATAARRAY, NULL, 'A1', true);
$HighestCol = $objPHPExcel->getActiveSheet()->getHighestDataColumn();
$HighestRow = $objPHPExcel->getActiveSheet()->getHighestDataRow();

$objPHPExcel->getActiveSheet()->getStyle('A1:'.$HighestCol.'1')->getAlignment()->setWrapText(true);

foreach($objPHPExcel->getActiveSheet()->getRowDimensions() as $rd) {
    $rd->setRowHeight(10);
}

$objPHPExcel->getActiveSheet()->setAutoFilter(
        $objPHPExcel->getActiveSheet()->calculateWorksheetDimension()
);

PHPExcel_Shared_Font::setAutoSizeMethod(PHPExcel_Shared_Font::AUTOSIZE_METHOD_EXACT);
foreach(range('A',$HighestCol) as $columnID) {
    $objPHPExcel->getActiveSheet()->getColumnDimension($columnID)
    ->setAutoSize(true);
}

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="myfile.xls"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');

从上面的代码中,我的$ DATAARRAY包含一些在某些单元格中有新行的内容。

当打开Excel文件时,那些假设有新行的单元格要求我双击单元格,以反映正确的高度。

我可以知道我做错了哪一部分。

谢谢。

1 个答案:

答案 0 :(得分:0)

以下是我设法找到的解决方案。 (以防任何人需要它)

只需更改行

即可
$objPHPExcel->getActiveSheet()->getStyle('A1:'.$HighestCol.'1')->getAlignment()->setWrapText(true);

到这个

$objPHPExcel->getActiveSheet()->getStyle('A1:'.$HighestCol.$HighestRow)->getAlignment()->setWrapText(true);