前回のOpenOffice Base(データベース)のレポートはいまいちでした(>_<!)
仕方ない。。。表計算ソフトにデータをいれて、それを出力することを考えよう!!
ってことで、OpenOffice Calc(表計算)で、シートを自動的にひらき、値をいれて(数値と文字)、印刷するっていうところまでやってみました。
■仕様
現時点ですでに、C:¥temp¥テスト.ods(¥は本当は半角です)に、OpenOffice Calc(表計算)で作ったシートがあります。そして、そのシートの1つに、”テスト”というシートがあります。
このとき、このテストというシートに対して、
セルB2 に "値を設定してみました" という文字列
セルB3 に 12345 という数値
を設定して
印刷します
■ソース
こんなかんじです。
sub Main dim document as object dim dispatcher as object dim args1(1) as new com.sun.star.beans.PropertyValue Dim oDoc as object '**** プロパティを入れるところ Dim pProp(1) As New com.sun.star.beans.PropertyValue '**** スプレッドシートを開く sURL = ConvertToURL("C:¥temp¥テスト.ods") oDoc = starDesktop.loadComponentFromURL(sURL,"_default",0,Array()) '**** 値を設定する Sheet= oDoc.Sheets.getByName("テスト") 'シートを選ぶ CellRange=Sheet.getCellRangeByName("B2") ' B2に値設定 CellRange.setString("値を設定してみました") CellRange=Sheet.getCellRangeByName("B3") ' B3に数値設定 CellRange.Value = 12345 '**** 印刷 document = oDoc.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") args1(0).Name = "Copies" args1(0).Value = 1 args1(1).Name = "Collate" args1(1).Value = false dispatcher.executeDispatch(document, ".uno:Print", "", 0, args1()) end sub |
(上記¥は、本当は半角)
というところで、今日のところはおしまい。