首页 文章

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

提问于
浏览
1

The problem:

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

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

Desired solution:

因此,这是可能的最佳方案:如果可以将图表从excel文件导出到png(或jpg或其他),甚至无需打开excel文件,例如从命令行或其他东西 . 生成的文件也可以在OpenOffice中打开,所以我可以使用它 . 然后我可以在服务器上导出excel,然后从excel导出图像,然后将图像发送到客户端 .

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

我有Excel 2016,我正在使用PHPExcel生成excel文件,如果这有任何重要性 .

Posible solutions:

一些好的选择似乎是save the document as web page,但我不知道你是否可以从mcommand行/那样做而不打开excel UI .

此外Open Office API看起来并不坏,但我之前从未使用过它,你可以通过这个API(使用Java或其他东西)导出图表而无需打开Calc UI吗?我知道开放式办公室有--invisible选项,这可能是有用的 .

2 回答

  • 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/

  • 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
    

相关问题