我使用PHPSpreadsheet编辑已有的Excel文件,并添加一些图像。但有时它会丢失excel中已有图表的样式。它将重置图表的背景色或比例。有些图表保持不变。
谁能告诉我为什么PHPSpreadsheet会重置已有图表的样式/比例,以及如何抑制这种副作用?
<?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);发布于 2020-09-24 19:42:55
Php电子表格在副本/模板中填充它的已知格式。所有未知的Fromatting将在保存文件时删除。
https://stackoverflow.com/questions/63790400
复制相似问题