我使用 PHPExcel 为订单生成Excel文件。
我有一些 约束 :
我已经完成了前3个但我无法达到最后的要求。
示例:
我有什么
我需要什么
由于其他单元格的宽度和高度,行和列是标准宽度和高度,无法更改。客户端设计......
我试过了:
$this->excel->getActiveSheet()->mergeCells('A28:C32');
$this->excel->getActiveSheet()->getStyle('A28')->getAlignment()->applyFromArray(
array(
'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER,
'rotation' => 0,
'wrap' => true
)
)->setShrinkToFit(true);
以及上述任何其他组合:
$this->excel->getActiveSheet()->mergeCells('A28:C32');
$this->excel->getActiveSheet()->getStyle('A28:C32')->getAlignment()->applyFromArray(
array(
'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER,
'rotation' => 0,
'wrap' => true
)
)->setShrinkToFit(true);
//or this
$this->excel->getActiveSheet()->mergeCells('A28:C32')->getAlignment()->setWrapText(true)->setShrinkToFit(true);
我知道
$this->excel->getActiveSheet()->getStyle("A1")->getFont()->setSize(10);
但是 只有当文本不适合合并的单元格 时,我才需要更小的文本。
感谢您的任何建议。
答案 0 :(得分:0)
我找到的唯一解决方案是实际计算行数并相应地设置字体。
如果字符串的行数 比 合并单元格的行数(在我的情况下为5),则设置字体小。
if (substr_count($return_to, "\n") <= 4){ //count 5 lines or less -> font = 10
$this->excel->getActiveSheet()->getStyle("A28")->getFont()->setSize(10);
}else{ //count more than 5 lines -> font = 9
$this->excel->getActiveSheet()->getStyle("A28")->getFont()->setSize(9);
}