我有一个使用PHPExcel生成excel表的简单代码。在代码中,我试图计算列宽,但它将列宽指定为-1。我做错了什么?
<?php
require '../PHPExcel_1.7.8-with_documentation-msoffice_format/Classes/PHPExcel.php';
$objPHPExcel = new PHPExcel();
$objPHPExcel->getActiveSheet()->setCellValue('A1','Test Column Width');
$calculatedWidth = $objPHPExcel->getActiveSheet()->getColumnDimension('A')->getWidth();
$objPHPExcel->getActiveSheet()->setCellValue('B1',$calculatedWidth);
header('Content-Type: text/csv');
header('Content-Disposition: attachment;filename="Technical.xlsx"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
?>
答案 0 :(得分:3)
列宽为-1意味着没有定义列宽,因此MS Excel / Gnumeric / OpenOffice Calc / etc在显示电子表格时将使用其默认列宽。
如果要计算显示列所需的列宽,则需要让PHPExcel通过设置自动大小来为您计算:
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
您也可以自己设置列宽
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(25);
有关详细信息,请参阅开发人员文档的第4.6.28节