首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHPSpreadsheet在编辑excel文件时丢失现有图表的样式

问PHPSpreadsheet在编辑excel文件时丢失现有图表的样式
EN

Stack Overflow用户
提问于 2020-09-08 16:49:27
回答 1查看 316关注 0票数 1

我使用PHPSpreadsheet编辑已有的Excel文件,并添加一些图像。但有时它会丢失excel中已有图表的样式。它将重置图表的背景色或比例。有些图表保持不变。

谁能告诉我为什么PHPSpreadsheet会重置已有图表的样式/比例,以及如何抑制这种副作用?

代码语言:javascript
复制
<?php

include 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

$inputExcelPath = __DIR__.'/assets/badExcel/an_excel_file.xlsx';
$outputExcelFile = __DIR__.'/excelOutput/'.time().'_'.'/an_excel_file.xlsx';

//load excel
$excelFIleInfo = new SplFileInfo($inputExcelPath);
$excelReader = IOFactory::createReaderForFile($excelFIleInfo->getRealPath());
$excelReader->setIncludeCharts(true);
$excel = $excelReader->load($excelFIleInfo->getRealPath());
//end loading

$excel->setActiveSheetIndex((int)0);

//add image
$drawing = new Drawing();
$drawing->setPath(__DIR__.'/assets/image.jpg');
$drawing->setCoordinates('Q5');
$drawing->setHeight(80);
$drawing->setWidth(140);
$drawing->setWorksheet($excel->getActiveSheet());
//end add image

//save edited excel to a new file
$writer = new Xlsx($excel);
$writer->setPreCalculateFormulas(false);
$writer->setIncludeCharts(true);
$writer->save($outputExcelFile);

Link to an example of the excel file

EN

回答 1

Stack Overflow用户

发布于 2020-09-24 19:42:55

Php电子表格在副本/模板中填充它的已知格式。所有未知的Fromatting将在保存文件时删除。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63790400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档