2012-07-10 78 views
-2

我的要求是在网页中显示MS Office excel 2007中的图表。如何拍摄excel表单的快照/图像?

有人可以帮助我通过任何语言正确地得到它吗? PHP是我的首选,我没有得到任何帮助谷歌。

我在一个excel文件内的所有工作表中都有超过1个图表。

PHPExcel和等价的API不支持图表导入支持,所以我唯一看到的解决方案是将excel表格导入为图像和显示。在谷歌

+0

如果您看看最新版本的PHPExcel,它__does__支持图表导入,甚至提供了一个包装器,用于直接从xlsx工作簿中使用jpgraph – 2012-07-10 20:40:15

+0

呈现图表感谢Mark,您有任何链接吗? – 2012-07-10 20:42:33

回答

2

看看PHPExcel的/ Tests目录中的32chartreadwrite.php。这为使用其图表数据读取Excel 2007+ .xlsx文件提供了基本代码。

$objReader = PHPExcel_IOFactory::createReader($fileType); 
$objReader->setIncludeCharts(TRUE); 
$objPHPExcel = $objReader->load($fileName); 


PHPExcel_Settings::setChartRenderer(
    PHPExcel_Settings::CHART_RENDERER_JPGRAPH, 
    dirname(__FILE__).'/../../libraries/Charts/jpgraph3.5.0b1/src' 
); 

$chart = $objPHPExcel->getSheetByName($sheetName)->getChartByName($chartName); 
$chart->render(); 

虽然它不支持的每个特征(仅单个Y轴,例如)或每图表类型(库存图表不被渲染器支持的),它可以与各种各样的工作图表类型。

+0

非常感谢你马克,你的伟大工作。 – 2012-07-10 20:52:24

+0

$ objReader-> setIncludeCharts(TRUE);提供以下错误,没有此声明加载工作正常。警告:PHPExcel_Reader_Excel2007 :: load():节点不再存在于/users/pravkum4/html/tracker/PHPExcel-1.7.7/Classes/PHPExcel/Reader/Excel2007.php上行1518 注意:尝试获取非对象的属性在/users/pravkum4/html/tracker/PHPExcel-1.7.7/Classes/PHPExcel/Reader/Excel2007.php上行1519 致命错误:致电成员函数children()上的非对象在/users/pravkum4/html/tracker/PHPExcel-1.7.7/Classes/PHPExcel/Reader/Excel2007.php上线1519 – 2012-07-11 16:56:30

+0

filetype是Excel2007 – 2012-07-11 16:58:08

1

2秒搜索“PHP图”打动了我:

http://pchart.sourceforge.net/

一个完全开源的图表库...

注意,图表不是对Excel本身的一部分。它是由Excel使用的图表库呈现的对象。您仍然需要从Excel电子表格中推断数据并将其正确传递给您的制图引擎...

+0

嗯我试了1个小时,你在2秒钟内得到它,天才。我正在问从excel导入图表。导入excel的单元格数据非常简单,为什么我应该两次做同样的工作,一次是在excel中,另一次是在其他图表引擎中输入相同的数据。 – 2012-07-10 20:46:03