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

问题描述 投票:59回答:7

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

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

但那不起作用。

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

php phpexcel phpspreadsheet
7个回答
149
投票

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

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

请注意,getColumnDimensionByColumngetColumnDimension之间的区别

此外,我甚至没有设置AutoSize,它工作正常。


9
投票

setAutoSize方法必须在setWidth之前:

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

8
投票

嗨,我有同样的问题..添加0.71到excel单元格宽度值,并给该值

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

例如:列宽= 3.71(excel值)

给列宽= 4.42

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

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

希望这个帮助


5
投票

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

setCellValueByColumnAndRow也是如此


3
投票

列宽的autoSize设置为低于。这个对我有用。

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

1
投票

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


1
投票

这对我有用:

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

一定要添加setAuzoSize(false),在罗兰提到的setWidth();之前

© www.soinside.com 2019 - 2024. All rights reserved.