【发布时间】:2012-11-09 17:32:28
【问题描述】:
经过大量试验和错误,我似乎仍然无法找到一种解决方法来让合并的单元格具有 AutoFit 高度。
我尝试了一种基于我在此站点上找到的一些 VBA 代码的方法:https://groups.google.com/forum/?fromgroups=#!topic/microsoft.public.excel.programming/pcvg7o5sKhA
以下代码粘贴文本,将其换行,并将单元格 (A1) 的宽度更改为我想要的合并单元格的总宽度。然后,它合并单元格并将 A 列设置回原来的宽度。 $note 是任何长字符串。 $vAlignTop 是一个数组,设置文本与单元格顶部的对齐方式。
$totalWidth = 67.44; //width of columns A-H
$objPHPExcel->getActiveSheet()->setCellValue('A1', $note);
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth($totalWidth);
$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setWrapText(true);
$objPHPExcel->getActiveSheet()->getStyle('A1:H1')->applyFromArray($vAlignTop);
$objPHPExcel->getActiveSheet()->mergeCells('A1:H1');
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(8.43); //original width of column A
当我在 excel 中手动执行这些相同的步骤时,我得到了我想要的结果,但上面代码的输出始终是默认的 12.75 行高。
有人有什么想法吗?我真的不介意对列宽进行硬编码,我只希望高度能够响应文本。
提前致谢。
【问题讨论】: