我有一个用 PHPExcel 制作的 Excel 文件,其标题带有左对齐徽标和右对齐日期和用户文本。对于第一页,我想要一个类似的标题(相同的徽标和相同的日期和用户文本),但添加一些附加信息(文件的标题和参数在几行后居中)。
这就是我到目前为止正在做的事情:
<?php
$sheet = $this->_spreadsheet->getActiveSheet(); //_spreadsheet is an instance of PHPExcel
$logo = new PHPExcel_Worksheet_HeaderFooterDrawing();
$logo->setName('Logo');
$logo->setPath(DOCUMENT_ROOT . '/public/logo.jpg'); //Path is OK & tested under PHP
$logo->setHeight(38); //If image is larger/smaller than that, image will be proportionally resized
$sheet->getHeaderFooter()->addImage($logo, PHPExcel_Worksheet_HeaderFooter::IMAGE_HEADER_LEFT);
$sheet->getHeaderFooter()->setOddHeader('&L&G&RExport date: ' . date('Y-m-d H:i:s') . "\n" . 'User: ' . $user->name);
if ($grid->getTitle() != '') {
$sheet->getHeaderFooter()->setDifferentFirst(true);
$sheet->getHeaderFooter()->addImage($logo, PHPExcel_Worksheet_HeaderFooter::IMAGE_HEADER_LEFT);
$sheet->getHeaderFooter()->setFirstHeader('&L&G&C&"-,Bold"' . "\n\n\n" . $grid->getTitle() . "\n" . $grid->getParameters() . '&RExport date: ' . date('Y-m-d H:i:s') . "\n" . 'User: ' . $user->name);
}
?>
对于“常规”标题,徽标和文本都已存在,因此一切正常。对于首页标题我有两个问题:
- 徽标未显示在首页标题上(但文本正常)。
- 由于居中标题后面将跟随一些文本(动态加载获取参数)我希望第一页标题能够拉伸以适合其内容。
我怎样才能用 PHPExcel 做到这一点?
我不知道为什么徽标没有显示在第一页标题上,但要拉伸高度以适合您需要手动更改页边距的内容。
我不确定最好的方法,无论是计算换行符还是什么。但是一旦你知道你有多少行,你可以这样做:
$headerHeight = ( $imageHeight / 72 ) + ( $headerLineCount * $lineHeight );
$objPHPExcel->getActiveSheet()->getPageMargins()->setHeader( $margin );
$objPHPExcel->getActiveSheet()->getPageMargins()->setTop( $margin + $headerHeight );
** The "$imageHeight / 72" clause is just a guess at how to convert your image's screen height into inches.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)