问题:
我正在开发一个将数据从数据库导出到Excel的Web应用程序,包括一个图表,这是首先导出的主要原因。
现在我希望图表也可以在网页上看到,而无需导出数据并打开下载的excel文件。这当然可以用JS库来完成,但是看到图表非常复杂,我想重新使用现有的export to excel或者重新编写它,现在在JS中。
所需解决方案:
所以,这是可能的最佳方案:如果可以将图表从excel文件导出到png(或jpg或其他),甚至无需打开excel文件,例如从命令行或其他东西。生成的文件也可以在OpenOffice中打开,所以我可以使用它。然后我可以在服务器上导出到excel,然后从excel导出图像,然后将图像发送到客户端。
这样的事情是否可能?我不反对第三方程序,如果它可以做到这一点。如果没有,您认为这种情况的下一个最佳解决方案是什么?
我有Excel 2016,我正在使用PHPExcel生成excel文件,如果这有任何重要性。
可行的解决方案:
save the document as web page似乎有一些不错的选择,但我不知道你是否可以在没有打开excel用户界面的情况下从mcommand行执行此操作。
此外Open Office API看起来并不坏,但我之前从未使用过它,你可以通过这个API(使用Java或其他东西)导出图表而无需打开Calc UI吗?我知道开放式办公室有--invisible选项,这可能是有用的。
答案 0 :(得分:1)
好吧,这会将图表导出为.png文件,但会打开excel文件(之后关闭),你可以试试这个:
将其放入.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
答案 1 :(得分: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/