以下のソースコードを helloCald.py として保存する。
#!
# -*- coding: utf_8 -*-
import uno
from com.sun.star.beans import PropertyValue
def helloCalc():
uri = "private:factory/scalc"
p = PropertyValue()
p.Name = "Hidden"
p.Value = True
properties = (p,)
desktop = XSCRIPTCONTEXT.getDesktop()
calc = desktop.loadComponentFromURL(uri, "_blank", 0, properties)
sheets = calc.getSheets()
sheet = sheets.getByIndex(0)
sheet.setName("helloSheet")
cell = sheet.getCellByPosition(1, 2)
cell.setString("The Price")
cell2 = sheet.getCellByPosition(1, 3)
cell2.setValue(99.95)
p = PropertyValue()
p.Name = 'Overwrite'
p.Value = True
properties = (p,)
calc.storeAsURL("file:///f:/helloCalc.ods", properties)
calc.dispose()
def message(msg = "", title = ""):
desktop = XSCRIPTCONTEXT.getDesktop()
frame = desktop.getCurrentFrame()
win = frame.getContainerWindow()
toolkit = win.getToolkit()
rect = uno.createUnoStruct("com.sun.star.awt.Rectangle")
msgbox = toolkit.createMessageBox(win, rect, "messbox", 1, title, msg)
msgbox.execute()
g_exportedScripts = helloCalc,
実行すると、F ドライブの直下に helloCalc.ods ファイルが作成される。
うちの環境だと、C ドライブに保存しようとすると。
com.sun.star.uno.Exception (Error during invoking function helloCalc in module file:///C:/Users/shadow/AppData/Roaming/OpenOffice.org/3/user/Scripts/python/helloCalc.py (
C:\Users\shadow\AppData\Roaming\OpenOffice.org\3\user\Scripts\python\helloCalc.py:29 in function helloCalc() [calc.storeAsURL("file:///c:/helloCalc.ods", properties)]
C:\Program Files (x86)\OpenOffice.org 3\Basis\program\pythonscript.py:773 in function invoke() [ret = self.func( *args )]
))
というようなエラーが発生する。
他に D, E ドライブで試したが、問題ない。なぜ C ドライブだけだめなのだろうか?
さっぱどわがんねぇ