使用PhpSpreadsheet如何为单个工作表(非整个电子表格)设置样式
你之前的写法错误原因:getStyle() 方法要求必须传入合法的单元格范围参数,不支持无参数调用,所以会操作失败。
方案1:工作表级默认样式(推荐)
直接调用工作表的 getDefaultStyle() 方法设置样式,仅作用于当前工作表,后续新增的单元格也会自动继承该样式,执行效率最高。
示例代码:
$spreadsheet->getActiveSheet()->getDefaultStyle()->getFont()->setSize(100);
方案2:批量选中当前工作表所有单元格
如果只需要修改现有已存在单元格的样式,不影响后续新增的单元格,可以选全表范围调用getStyle():
你可以手动写死Excel最大范围:
// XFD、1048576是xlsx格式支持的最大列、最大行,覆盖所有可能的单元格 $spreadsheet->getActiveSheet()->getStyle('A1:XFD1048576')->getFont()->setSize(100);
也可以自动获取当前工作表已使用的单元格范围,性能更好:
$worksheet = $spreadsheet->getActiveSheet(); $worksheet->getStyle($worksheet->calculateWorksheetDimension())->getFont()->setSize(100);
内容的提问来源于stack exchange,提问作者Stephen Shaw
相关产品推荐
相关产品推荐

