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

use*_*003 65 php phpexcel phpspreadsheet

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

$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setWidth('10');
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setAutoSize(false);
Run Code Online (Sandbox Code Playgroud)

但那不起作用.

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

Jah*_*mic 158

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

$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);
Run Code Online (Sandbox Code Playgroud)

请注意,之间的区别getColumnDimensionByColumngetColumnDimension

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

  • 我使用PHPExcel已经有一段时间了,但我相信你想要'setWrapText'.示例:$ objPHPExcel-> getActiveSheet() - > getStyle('A6') - > getAlignment() - > setWrapText(true); (4认同)

Rol*_*and 9

setAutoSize方法必须在setWidth之前:

$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setAutoSize(false);
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setWidth('10');
Run Code Online (Sandbox Code Playgroud)

  • AutoSize:false是设置宽度所必需的 (2认同)
  • getColumnDimensionByColumn() 需要一个从 0 开始的列索引,而不是列名。(来自 Worksheet 类:“@param string $pColumn 单元格的数字列坐标”) (2认同)

小智 8

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

$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);
Run Code Online (Sandbox Code Playgroud)

例如:列宽= 3.71(excel值)

给列宽= 4.42

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

$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(4.42);
Run Code Online (Sandbox Code Playgroud)

希望这个帮助


小智 5

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

这同样适用于setCellValueByColumnAndRow


Mag*_*ssy 5

这对我有用:

$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(false);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(10);
Run Code Online (Sandbox Code Playgroud)

请务必在Rolland 提到的之前setAuzoSize(false)添加,setWidth();


小智 5

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

$spreadsheet->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
Run Code Online (Sandbox Code Playgroud)