9

我有一堆Lotus 123電子表格(不是我寫的),蓮花腳本在他們身上做了很多腿部工作(將數據從一個電子表格移動到另一個電子表格以及其他類似的東西)。我正在考慮將它全部從Lotus 98遷移到OpenOffice之類的更開放的東西。OpenOffice 3中的Python

我想知道哪裏會是開始學習腳本OpenOffice 3的好地方。Python是一個很好的路線,如果是這樣,我可以在哪裏找到適用於OOo3的工作代碼示例?我應該注意的任何奇怪的問題?我應該使用另一種腳本語言,如Javascript或OOBasic?

什麼是人們認爲基本上腳本OpenOffice 3!

乾杯,

安迪

回答

9

起點

從這裏開始:Python as a macro language

例子

在wiki中使用Python category

有更好的腳本語言嗎?

Python是迄今爲止最好的語法。我建議的JavaScript和OOBasic只有滿足這兩個條件時:

  1. 你已經知道的語言
  2. 您需要的內置調試

使用Python,調試通常不是大問題,所以你不會錯過調試器,它比其他任何語言都更容易學習。

5

我看着這個發現如何使用Python作爲腳本語言令人驚訝的一點文檔。說了這麼一句話,我想出了我需要的東西,而且爲了我的簡單目的,它可以正常工作(從行中制定時間表)。它甚至在OS X上運行良好,考慮到OO.o在該平臺上相當年輕。 Python是一門偉大的語言,比Basic更好。這裏有一些事情你需要知道:

  • 你在Python腳本的出發點是XSCRIPTCONTEXT,全局變量從腳本直接訪問。因此,你可以做

    worksheet = XSCRIPTCONTEXT.getDocument().getSheets().getByIndex(0) 
    

    的,你可以做

    worksheet.getCellByPosition(x,y).getString() 
    

    或相應setString()進入細胞。

  • 在OS X上,我不得不把腳本放在$HOME/Library/Application Support/OpenOffice.org/3/user/Scripts/python。然後它被宏對話框拾取。

  • 把你的宏功能,說def macro並在末尾添加

    g_exportedScripts = macro, 
    

  • 要獲取調試輸出,我用:

    logfile = os.path.dirname(__file__.replace("file://","").replace("%20"," ")) + "/output.txt" 
    sys.stdout = open(logfile, "a", 0) # unbuffered 
    

    然後你可以使用print,這將是輸出腳本的目錄到output.txt。

這應該足以讓你開始。