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

Posted

技术标签:

【中文标题】使用 PHPExcel 设置电子表格单元格的宽度【英文标题】:Setting width of spreadsheet cell using PHPExcel 【发布时间】:2011-10-10 22:26:55 【问题描述】:

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

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

但这不起作用。

这里需要调用什么方法?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

【参考方案2】:

autoSize 列宽设置如下。它对我有用。

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

【讨论】:

【参考方案3】:

这对我有用:

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

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

【讨论】:

请不要像罗兰已经定义的那样添加重复的答案 是的,但它使用 getColumnDimension 而不是 getColumnDimensionByColumn @MKhalidJunaid 您可能需要再次检查。它甚至不是一个重复的答案,因为它完全实现了其他方法。【参考方案4】:

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

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

注意,getColumnDimensionByColumngetColumnDimension的区别

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

【讨论】:

如何将 wordwrap 属性设置为特定列。如果你知道,这对我很有用。谢谢! 自从我使用 PHPExcel 已经有一段时间了,但我相信你想要'setWrapText'。示例:$objPHPExcel->getActiveSheet()->getStyle('A6')->getAlignment()->setWrapText(true); Jahmic 是对的。默认情况下,所有列的 AutoSize 都设置为 false,因此无需使用代码执行此操作。【参考方案5】:

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

setCellValueByColumnAndRow

也是如此

【讨论】:

【参考方案6】:

setAutoSize 方法必须在 setWidth 之前:

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

【讨论】:

AutoSize:false 是必需的以设置宽度 getColumnDimensionByColumn() 需要一个基于 0 的列索引,而不是列名。 (来自 Worksheet 类:“@param string $pColumn 单元格的数值列坐标”)【参考方案7】:

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

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

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

给列宽 = 4.42

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

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

希望有帮助

【讨论】:

【参考方案8】:

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

【讨论】:

以上是关于使用 PHPExcel 设置电子表格单元格的宽度的主要内容,如果未能解决你的问题,请参考以下文章

phpexcel 怎么根据字符串长度设置单元格的宽度

怎么调整excel单元格的行列宽度

如何使用百分比设置表格单元格的最大宽度?

如何用CSS 定制表格单元格的宽度和高度

图像未扩展表格单元格的宽度

Excel设置单元格的宽度、高度