PHPExcel将列宽指定为-1

时间:2013-05-03 20:16:35

标签: phpexcel

我有一个使用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');
?>

1 个答案:

答案 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节