gpt4 book ai didi

php - 如何从加载到 PHPExcel 的 excel 文件中删除/删除图形(图表)、图片(图像)?

转载 作者:行者123 更新时间:2023-12-04 05:11:43 24 4
gpt4 key购买 nike

我正在使用 PHPExcel 类,我正在加载模板电子表格,然后修改数据等等。

根据我动态传递脚本的内容,应删除模板中的某些图像并删除某些图形(图表)。

我用过 getChartCollection()getDrawingCollection()获取所有内容,但我还没有想出修改集合的方法,以便我可以从
加载的模板。

感谢您的帮助。
杰森·K

更新 - 感谢下面来自 Mark Ba​​ker 的信息。
我编写了以下代码,需要将其添加到工作表类中,直到 1.7.9 发布。
我的代码如下。

/**
* Remove drawing from collection
*
* @return PHPExcel_Worksheet_BaseDrawing[]
*/
public function removeImageByIDs($IDs)
{
if(!is_array($IDs)) $IDs = array($IDs);
$drawing_collection = $this->_drawingCollection;
$drawing_collection_copy = $drawing_collection->getArrayCopy();
foreach($IDs as $ID){
unset($drawing_collection_copy[$ID]);
}
$drawing_collection_copy = array_values($drawing_collection_copy);
$drawing_collection->exchangeArray($drawing_collection_copy);
$this->_drawingCollection = $drawing_collection;
unset($drawing_collection_copy);
unset($drawing_collection);
return $this->_drawingCollection;
}

/**
* Remove chart from collection
*
* @return PHPExcel_Worksheet_BaseDrawing[]
*/
public function removeChartByIDs($IDs)
{
if(!is_array($IDs)) $IDs = array($IDs);
$chart_collection = $this->_chartCollection;
$chart_collection_copy = $chart_collection->getArrayCopy();
foreach($IDs as $ID){
unset($chart_collection_copy[$ID]);
}
$chart_collection_copy = array_values($chart_collection_copy);
$chart_collection->exchangeArray($chart_collection_copy);
$this->_chartCollection = $chart_collection;
unset($chart_collection_copy);
unset($chart_collection);
return $this->_chartCollection;
}

享受。杰森·K

最佳答案

信不信由你,这是第一次有人询问从电子表格中删除图表或图像。 PHPExcel实际上没有任何方法,但它们很容易让您添加自己。在这些集合中添加条目的方法在 PHPExcel_Worksheet 类中;并且由于集合只是一个数组,因此它只是使用 unset()、array_splice() 或类似方法来删除您不想要的条目的情况。

关于php - 如何从加载到 PHPExcel 的 excel 文件中删除/删除图形(图表)、图片(图像)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14840859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com