如果将列设置为AutoSize,PHPExcel会尝试根据列的计算值(基于任何公式的结果)以及格式掩码(例如千位分隔符)添加的任何其他字符来计算列宽。
默认情况下,这是
estimated宽度:使用GD时,可以使用一种更准确的计算方法,该方法还可以处理字体样式功能(例如粗体和斜体);但这是一个很大的开销,因此默认情况下将其关闭。您可以使用以下方法启用更准确的计算
PHPExcel_Shared_Font::setAutoSizeMethod(PHPExcel_Shared_Font::AUTOSIZE_METHOD_EXACT);
但是,自动调整大小并不适用于所有Writer格式…例如CSV。您没有提及您正在使用的作家。
但是,您还需要标识列以设置尺寸:
foreach(range('B','G') as $columnID) { $objPHPExcel->getActiveSheet()->getColumnDimension($columnID) ->setAutoSize(true);}$objPHPExcel->getActiveSheet()->getColumnDimension()需要一个列ID。
$objPHPExcel->getActiveSheet()->getColumnDimensions()将返回所有已定义列维记录的数组;但是除非明确创建了列维记录(例如通过加载模板或通过手动调用
getColumnDimension()),否则该记录将不存在(保存内存)。



