我正在使用PHPExcel读取和写入Excel的值。我有一个模板,上面有图形和样式。
问题在于: 在Excel工作表上添加了一些值后,图表的样式已被删除,并显示默认样式。
我正在使用此代码阅读:
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
// Tell the reader to include charts when it loads a file
$objReader->setIncludeCharts(TRUE);
// Load the file
$objPHPExcel = $objReader->load("rcca.xlsx");
这就是写
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->setIncludeCharts(TRUE);
$objWriter->save('rcca.xlsx');
我错过了什么吗?
请查看之前和之后的图表样式的屏幕截图:
答案 0 :(得分:4)
使用PHPExcel的图表存在同样的问题 (我的主要问题是改变图表栏的颜色)
首先,如果有人不知道或忘记xlsx文件是zip archs
所以主要问题是PHPExcel在保存xlsx文件时会添加默认主题文件xl / theme / theme1.xml,即使你在$ objReader->加载文件中更改它也会将其覆盖为默认值$ objWriter->保存。
在theme1.xml
处的<a:accent1>
图表中的颜色(... 2,3,4,5,6)
所以我把theme1.xml更改为我需要的颜色,保存并使用The ZipArchive class覆盖之后
$ objWriter-&gt;使用简单代码保存
$zip = new ZipArchive;
if ($zip->open('filename.xlsx') === TRUE) {
$zip->addFile('mytheme1.xml', 'xl/theme/theme1.xml');
$zip->close();
echo 'ok';
} else {
echo 'err';
}
我希望它会帮助某人
答案 1 :(得分:1)
此时,图表样式似乎需要进行硬编码。
在另一个帖子中,有人解释了如何添加一些样式PHPExcel graph design (border, graph color, graph inner position)