2016-08-05 66 views
1

问题:如何图表自动导出从Excel(或计算),PNG

我正在从数据库到Excel导出数据,包括图表的Web应用程序,这是首先出口的主要原因。

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

期望的解决方案:

所以,这是最好的情况成为可能:如果有可能的图表从Excel导出文件PNG(或JPG或其他),甚至没有opeing Excel文件,像一个命令行或其他东西。此外,生成的文件在OpenOffice中也可以正常使用,所以我可以继续使用它。然后我可以导出到服务器上的excel,然后从excel中导出图像,并将图像发送到客户端。

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

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

更多钞票的解决方案:

一些很好的选择似乎是save the document as web page,但我不知道,如果你能做到这一点来回mcommand线/无需打开Excel的UI。

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

+0

(Excel文件),你可以通过VBScript中做到这一点,如果这是一个选择。 –

+0

还有一个问题:这是关于_opening_工作簿还是关于_seeing_工作簿? –

+0

@汤姆我从来没有考虑过差异。我想这是关于看工作簿。我想是需要以某种方式打开的。我的主要观点是我需要自动导出图表*,而不需要用户与用户界面进行单一交互 - 因为没有用户需要与服务器上的UI进行交互,而导出需要发生。 – kajacx

回答

1

好吧,这将图表导出为.png文件,但它会打开Excel文件(事后关闭它),你可以试试这个:

把它放进.vbs -file并通过运行安慰。

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 
+0

这似乎很好,但我找不到如何运行一个可视化的基本文件。我使用的是Windows 10.官方下载网站不起作用,它不会下载任何内容https://www.microsoft.com/en-us/download/confirmation.aspx?id = 10019 – kajacx

+0

我不使用Win10,但afaik这应该工作。此外,下载链接适合我。你可以试试这个:http://www.computing.net/answers/programming/cant-run-vbscript-from-batch-file/30277.html或者只是创建'.vbs'文件,将代码粘贴到文件,保存并关闭。通过双击运行。 –

0

无需使用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/

+0

谢谢,这可以导出图表,这很不错,但是有一些东西(如图例)缺失,在libre office打开文件的位置显示的只是fina的图例。 – kajacx

+0

这很奇怪,当我尝试它时,它显示了传说。也许你的LO版本有bug?我的是5.1.0.3。另外,我使用了.ods格式,听起来就像使用Excel格式。 –

+0

是的,我使用的是xlsx格式。 – kajacx