我想使用 PHPExcel 将一些已经存在于 excel 文件中的图表保存为图像文件(另存为图像)。
这是否可能,任何人都可以向我指出一些示例代码,因为谷歌结果只带回代码以从数字数据生成新图表。
我想使用 PHPExcel 将一些已经存在于 excel 文件中的图表保存为图像文件(另存为图像)。
这是否可能,任何人都可以向我指出一些示例代码,因为谷歌结果只带回代码以从数字数据生成新图表。
您应该查看 /Tests 目录中的示例 35chartrender.php,它完全符合您的要求。基本上这一切都归结为$chart->render($jpegFileName);
. 我认为除了 jpeg 之外,没有其他方法可以将图表呈现为其他任何东西,尽管您可以随时在http://phpexcel.codeplex.com/上询问专家。
如果这些是实际图像而不是 MS Excel 图表,请查看开发人员文档的第 4.6.37 节,标题为“从工作表中读取图像”:
$i = 0;
foreach ($objPHPExcel->getActiveSheet()->getDrawingCollection() as $drawing) {
if ($drawing instanceof PHPExcel_Worksheet_MemoryDrawing) {
ob_start();
call_user_func(
$drawing->getRenderingFunction(),
$drawing->getImageResource()
);
$imageContents = ob_get_contents();
ob_end_clean();
switch ($drawing->getMimeType()) {
case PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_PNG :
$extension = 'png'; break;
case PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_GIF:
$extension = 'gif'; break;
case PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_JPEG :
$extension = 'jpg'; break;
}
} else {
$zipReader = fopen($drawing->getPath(),'r');
$imageContents = '';
while (!feof($zipReader)) {
$imageContents .= fread($zipReader,1024);
}
fclose($zipReader);
$extension = $drawing->getExtension();
}
$myFileName = '00_Image_'.++$i.'.'.$extension;
file_put_contents($myFileName,$imageContents);
}
如果它们是实际的 MS Excel 图表,那么(正如 Technoh 所建议的)示例 35chartrender.php 中演示的图表 render() 方法将使用 jpgraph 从该图表定义创建图像文件。