2013-05-03 56 views
0

我有一个简单的代码来生成使用PHPExcel的Excel表。在代码中,我试图计算列宽,但它列宽为-1.What我做错了什么?PHPExcel给列宽为-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'); 
?> 

回答

3

-1列的宽度是指没有列的宽度被定义,所以MS Excel中/ Gnumeric的/ OpenOffice的计算值/等显示所述电子表格时将使用它们的默认列宽。

如果你想计算,以显示你的列所需的列宽,那么你需要获得通过设置自动调整大小PHPExcel来算一下:

$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true); 

您还可以设置列宽明确自己开发者文档的详细信息

$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(25); 

参见部分4.6.28