76

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

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

但这不起作用。

我需要在这里调用什么方法?

4

8 回答 8

187

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

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

getColumnDimensionByColumn注意,和之间的区别getColumnDimension

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

于 2011-08-13T11:45:22.947 回答
12

setAutoSize 方法必须在 setWidth 之前:

$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setAutoSize(false);
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setWidth('10');
于 2015-10-16T12:52:14.953 回答
8

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

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

例如:A Column width = 3.71(excel 值)

给列宽 = 4.42

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

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

希望这有帮助

于 2015-02-08T21:05:29.983 回答
5

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

setCellValueByColumnAndRow也是如此

于 2015-11-05T19:35:21.310 回答
5

列宽的 autoSize 设置如下。这个对我有用。

$spreadsheet->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
于 2018-03-15T07:31:08.683 回答
2

这对我有用:

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

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

于 2017-12-22T14:47:42.360 回答
1

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

于 2014-08-14T08:32:39.930 回答
1

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

foreach (range('A', 'I') as $letra) {            
            $spreadsheet->getActiveSheet()->getColumnDimension($letra)->setAutoSize(true);
}
于 2021-06-16T02:59:49.627 回答