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

我试图用以下方法设置用 PHPExcel 生成的 Excel 文档中单元格的宽度:

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

但这不管用。

这里需要调用的方法是什么?

187671 次浏览

这是一个微妙的差异,但这对我很有效:

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

注意,getColumnDimensionByColumngetColumnDimension之间的区别

而且,我甚至没有设置自动大小,它工作得很好。

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

嗨,我也有同样的问题。 将0.71添加到 Excel 单元格宽度值,并将该值赋给

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

列宽 = 3.71(Excel 值)

列宽 = 4.42

将给出具有相同单元格宽度的输出文件。

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

希望这个能帮上忙

SetAutoSize 方法必须在 setWidth 之前:

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

这是因为 GetColumnDimensionByColumn接收列索引(从0开始的整数) ,而不是字符串。

SetCellValueByColumnAndRow也是如此

这对我很有效:

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

一定要加上 setAuzoSize(false)之前setWidth();罗兰提到

如下所示的列宽的 autoSize。对我来说很有用。

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

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

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