使用 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);
注意,getColumnDimensionByColumn
和getColumnDimension
的区别
另外,我什至没有设置 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 设置电子表格单元格的宽度的主要内容,如果未能解决你的问题,请参考以下文章