如何自动将图表从Excel(或Calc)导出到PNG

问题:

我正在开发一个Web应用程序,用于将数据库中的数据导出到Excel中,其中包括一个图表,这是首先导出数据的主要原因。

现在我想让图表也能在网页上看到,而不需要导出数据并打开下载的excel文件。 这当然可以用JS库来完成,但是看到图表非常复杂,我想重新使用现有的导出来改写,或者现在用JS重写。

期望的解决scheme:

所以,这是最好的情况下可能的:如果可以从excel文件导出图表到PNG(或JPG或其他),甚至没有打开Excel文件,如从命令行或什么的。 另外生成的文件在OpenOffice中打开,所以我可以去。 然后我可以导出到服务器上的excel,然后从excel中导出图像,并将图像发送到客户端。

这样的事情甚至可能吗? 我不反对第三方程序,如果它能做到这一点。 如果不是,那么您认为这种情况下的下一个最佳解决scheme是什么?

我有Excel 2016,我用PHPExcel生成excel文件,如果这是重要的。

可能的解决scheme:

一些好的select似乎是将文档保存为网页 ,但我不知道是否可以做到这一点线/无需打开Excel用户界面。

此外, Open Office API看起来不错,但我从来没有使用它,你可以通过这个API(与Java或其他)导出图表,而无需打开Calc UI? 我知道开放式办公室有 – 不可见的select,这可能是有用的。

好吧,这将导出图表作为.png文件,但它打开Excel文件(并closures它),你可以试试这个:

把它放进.vbs文件并通过控制台运行。

  Set objXLS = CreateObject("Excel.Application") Set yWkbk = objXLS.Application.Workbooks.Open("C:\yourpath\yourfile.xls") 'Sheet ID can change of course Set yWksht = yWkbk.Sheets(1) Set yChart = yWksht.ChartObjects("yourchartname").Chart yChart.Export "C:\yourpath\yourfilename.png", "PNG" objXLS.Quit Set objXLS = Nothing 

不需要使用API​​。 这个命令为我工作:

 "C:\Program Files\LibreOffice 5\program\soffice.exe" -convert-to png "Untitled 1.ods" -headless 

有关讨论,请参阅: https : //ask.libreoffice.org/en/question/2641/convert-to-command-line-parameter/