使用PHPExcel设置电子表格单元格的宽度

时间:2011-07-22 10:06:37

标签: php phpexcel phpspreadsheet

我正在尝试使用PHPExcel生成的Excel文档中设置单元格的宽度:

$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setWidth('10');
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setAutoSize(false);

但这不起作用。

我需要在这里打电话的方法是什么?

8 个答案:

答案 0 :(得分:146)

这是一个微妙的区别,但这对我来说很好:

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

请注意,getColumnDimensionByColumngetColumnDimension

之间存在差异

另外,我甚至没有设置AutoSize,它运行正常。

答案 1 :(得分:9)

setAutoSize方法必须在setWidth:

之前
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setAutoSize(false);
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setWidth('10');

答案 2 :(得分:8)

嗨,我遇到了同样的问题.. 将0.71添加到excel单元格宽度值并将该值赋予

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

例如: 列宽= 3.71(excel值)

给列宽= 4.42

将为输出文件提供相同的单元格宽度。

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

希望这个帮助

答案 3 :(得分:5)

Tha是因为 getColumnDimensionByColumn 收到列索引(从0开始的整数),而不是字符串。

同样适用于 setCellValueByColumnAndRow

答案 4 :(得分:3)

将列宽设置为下方的autoSize。它对我有用。

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

答案 5 :(得分:1)

设置列宽的正确方法是使用Jahmic发布的行,但重要的是要注意另外,您必须在添加数据之后应用样式,而不是之前,否则在某些配置中,不应用列宽

答案 6 :(得分:1)

这对我有用:

$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(false);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(10);

请务必在setAuzoSize(false)之前添加setWidth();,然后再提及

答案 7 :(得分:0)

这种方式更容易自动调整列的大小。

foreach (range('A', 'I') as $letra) {            
            $spreadsheet->getActiveSheet()->getColumnDimension($letra)->setAutoSize(true);
}