0

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

1 回答 1

3

列宽 -1 表示未定义列宽,因此 MS Excel/Gnumeric/OpenOffice Calc/etc 在显示电子表格时将使用其默认列宽。

如果要计算显示列所需的列宽,则需要通过设置自动大小让 PHPExcel 为您计算:

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

您也可以自己明确设置列宽

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

有关详细信息,请参阅开发者文档的第 4.6.28 节

于 2013-05-04T07:31:54.963 回答