2013-05-03 53 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