雲の向こうの空

立ち上る雲の向こうの空 いかん
見上げしもののあわれとぞ思ふ

VBScript から OOo Calのデータを読み込む

2011年03月26日 | CPU

VBScriptでOpenOffice.orgのodsファイルへアクセスするための簡単なサンプルプログラムです。ファイルへのパスは引数から得ています。loadComponentFromURLを使用するにはファイル名にConvertToUrlの処理が必要です。




Option Explicit
Dim oSM
Dim oDesktop
Dim oIntroSpection
Dim oDispatchHelper
Dim oCalcDocDim oSheet
Dim oCellDim OpenPar(1)
Dim myFileNameSet
oSM = Wscript.CreateObject("com.sun.star.ServiceManager")
Set oDesktop = oSM.createInstance("com.sun.star.frame.Desktop")
myFileName = ConvertToUrl(WScript.Arguments(0))
Set OpenPar(0) = MakePropertyValue("ReadOnly", False)
Set OpenPar(1) = MakePropertyValue("Hidden", False)
'Set OpenPar(1) = MakePropertyValue("Hidden", True)
Set oCalcDoc = oDesktop.loadComponentFromURL(myFileName, "_blanks", 0, OpenPar)
Set oSheet = oCalcDoc.Sheets.getByName("Sheet1")
Set oCell = oSheet.getCellByPosition(1,2)
Wscript.echo oCell.Value
Call oCalcDoc.close(true)







Function ConvertToURL(sFileName)
Dim fso 
Dim sTmpFile
Set fso = CreateObject("Scripting.FileSystemObject")
If Left(sFileName, 7) = "file://"
Then
ConvertToURL = sFileName
Exit Function
End If
ConvertToURL = "file:///"
sTmpFile = fso.GetAbsolutePathName(sFileName)          'replace any "\" by "/"
sTmpFile = Replace(sTmpFile,"\","/")          ' replace any % by %25
sTmpFile = Replace(sTmpFile,"%","%25")          'replace any " " by "%20"
sTmpFile = Replace(sTmpFile," ","%20")
ConvertToURL = ConvertToURL & sTmpFile
End Function




MakePropertyValue は事前にoSMに"com.sun.star.ServiceManager"がセットされていないといけません。



Function MakePropertyValue(byval cName, byval uValue)         
Dim oPropertyValue          
Set oPropertyValue = oSM.Bridge_GetStruct("com.sun.star.beans.PropertyValue")        oPropertyValue.Name = cName
oPropertyValue.Value = uValue 
Set MakePropertyValue = oPropertyValue
End Function




なんか草稿があったから適当にアップしとくね


間違いあったから、直してみた




最新の画像もっと見る

1 コメント

コメント日が  古い順  |   新しい順
Unknown (ゆう)
2011-05-05 20:34:39
GOOブログのCSSの動きとかがよくわからないよ・・・
返信する

コメントを投稿