2016-08-05 65 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