风火家人技术博客

技术总结精华贴

Month: March 2019

PHP, 原创,

PHPOffice\PHPPresentation添加背景格式(图案填充)功能

使用PHPPresentation时我们发现,该开源软件竟然不支持图案填充功能,于是就自己补充了下,(本想将自己代码贡献给PHPOffice官方,因下载下来的开发版本无法通过单元测试,只能暂时写到此处供参考) 以下方式可以使PHPPresentation支持背景图案填充。 1.首先创建背景填充类文件 PHPOffice/PHPPresentation/src/PhpPresentation/Slide/Background/FillType.php 代码如下 <?php/** * Created by chenxue4076@163.com. * User: chenxue4076@163.com * Date: 2019/02/27 * Time: 14:46 * File name: FillType.php */namespace PhpOffice\PhpPresentation\Slide\Background;use PhpOffice\PhpPresentation\Slide\AbstractBackground;use PhpOffice\PhpPresentation\Style\Fill as StyleFill;class FillType extends AbstractBackground{ const FILL_PATTERN_BACKGROUND = array( “cross”, “dashDnDiag”, //dashed downward

Read More
PHP, 原创

phpExcel生成的Excel背景填充色变黑

最近有同事在处理PHPExcel生成的Excel文件时,总会生成一片黑背景。 具体样式我就不截图了, 直接说修改方式。 找到文件 PHPExcel/Writer/Excel2007/Stype.php, 找到函数方法 writePatternFill 将下面信息 $objWriter->writeAttribute(‘rgb’, $pFill->getStartColor()->getARGB()); 替换为 if( $pFill->getStartColor()->getARGB() == ‘FF000000’ && $pFill->getEndColor()->getARGB() == ‘FF000000’) { $objWriter->writeAttribute(‘rgb’, ’00FFFFFF’);} else { $objWriter->writeAttribute(‘rgb’, $pFill->getStartColor()->getARGB());} 原因解析:此函数中 startColor为前景色,endColor为背景色, 通过PHP生成的PHPExcel中会多出 前景色和背景色都为黑色FF000000的FILL, 这个应该是PHPExcel的BUG,这时候我们强制设置前景色(字体颜色)为透明的白色,因为都是空行,这样做并没有问题哦。 通过上面的操作我们就可以生成正常的Excel文件了。 (0)

Read More