Okapi Project

Java から OpenOffice.org の操作(テンプレート作成編)

バージョン
2004 年 12 月 17 日 Ver.1.1
作成者
T.Hirata ( Xware )

要約

OpenOffice.org の API を使って帳票を出力するためには、テンプレートが必要になります。テンプレートを使用することによって、帳票のレイアウトを整えたり、セルの書式や罫線を使用するといった処理を AP に実装することなく、手軽に行なうことができます。

ここでは、テンプレートの使用のヒントと注意点について記載します。

目次


1. テンプレートとは

ここでいうテンプレートとは、あらかじめ出力する帳票の形式になった OpenOffice.org の表計算ドキュメント形式(sxc ファイル)のファイルのことを指します。テンプレートには単に帳票の外観だけを規定しておき、実際に出力する内容は AP から OpenOffice.org の API を通して受け渡します。つまり、テンプレートを利用することによって、出力項目の位置指定やフォントの形式などを AP で意識する必要なく、AP ではどの項目にどの文字を出力するといった処理さえ実装すれば、テンプレートに規定されたデザインで帳票の作成を行なうことが可能となります。

また、帳票のレイアウトに修正が入る場合にも、単に文字のフォントや表示位置を変えるといったことであれば、テンプレートを修正するだけで AP に手を加えくわえる必要もないため、メンテナンス性が向上します。

 

2. テンプレートの仕組み

テンプレートは単に帳票の外観だけが規定されたものなので、帳票として出力する場合には中身(文字)をテンプレートに埋め込む処理を行なわなくてはなりません。そして、文字を埋め込む場合に決めなくてはならないのは、帳票のドコに埋め込むかということです。

Microsoft の Excel や OpenOffice.org の Calc などの表計算ソフトでは、画面内の位置を A1 , B6 というように列と行を組み合わせて指定します。なので、テンプレートに文字を埋め込む場合にも、「B6 に文字列×××を埋め込む」といった処理を実装すればよいのです。しかし、この方法では、「項目に文字を埋め込む場合にセル位置を調べなければならい」「後から行や列を挿入する場合に項目の位置が変わってしまう」といった問題が起こってしまいます。特に後者は、AP で埋め込む位置を指定している部分を修正しなければならなくなり、メンテナンス性が非常に悪くなります。

そこで、埋め込むセルに名前を付けて、AP で埋め込む位置を指定するときには埋め込むセルを名指しするという方法をとります。これなら埋め込むセル位置ではなくセルにつけた名前を指定すればよくなり、後から列や行を挿入した場合にもセルの位置情報とは関係がないので影響が少なくて済みます。

 

セルに名前を付けない場合と付けた場合の処理概要

 

3. テンプレートの作成方法

テンプレートとなるファイルは Open Office.org の Calc の sxc 形式のファイルです。新規に作成する場合には Calc を起動することによって自動的に新しい sxc ファイルが作成されます。

まず、シートに以下のような帳票レイアウトを作ったとします。

 

とりあえず帳票風のレイアウトを作成

この状態でもテンプレートとして使用することができますが、このままでは先に記述したように、帳票に文字を埋め込む場合にセル位置を指定しなければなりません。そこで、文字を埋め込むセルに名前をつけます。

 

セルに名前を付けるためには、名前を付けるセルをアクティブにした状態でメニューから「挿入」→「名前」→「指定」(または Ctrl + F3)で「名前の指定」ダイアログを開き、セルに付ける名前を入力して追加ボタンを押します。

セルに名前を付ける

これでセル C3 に「busyo」 と名前が付きました。

名前の付いているセルにフォーカスを合わせると左上に名前が表示されるので、これでセルに名前がついているか確認します。

フォーカスのあるセルの名前の参照

 

基本的に、このプロセスを出力項目の数だけ行なえばテンプレートができます。しかし、OpenOffice.org にはただ文字を出力するだけではなく、セルごとに文字のフォント、色、出力形式など多く設定できる他に、式を設定しておけば文字を埋め込んだときにその文字を使って式が実行されるなど、さまざまな使用方法があります。


Copyright © 2003 - 2006 Okapi Project All Rights Reserved.