スタイルについての補足

スタイルに関する情報はoffice:automatic-stylesタグの下にまとめて記録されています。

<office:automatic-styles>
    <style:style style:name="co1" style:family="table-column">
        <style:table-column-properties .../>
    </style:style>
    <style:style style:name="ro1" style:family="table-row">
        <style:table-row-properties .../>
    </style:style>
    style:style要素の繰り返し...

</office:automatic-styles>

例えばtable:table-columnに「co1」というスタイル名が付いていたら、style:name属性が「co1」の要素を元にシートがレンダリングされます。 style:styleタグが何から参照されるかはstyle:family属性に記録されています。 同じファミリーのスタイルが複数ある場合、「co1, co2, co3,...」の様にCalcが連番で命名します。 スタイルのファミリーには次のようなものがあります。

参照元ファミリー連番の頭スタイルの指定内容
シートtableta???
列ヘッダtable-columnco列幅、改ページの許可など
table-rowro行の高さ、改ページの許可など
セルtable-cellce文字修飾、背景色、罫線など
テキストtextT文字修飾など

行、列のスタイルには文字修飾、背景色、罫線の設定項目は記録されません。 1列全部が同じスタイルになっている場合、列ヘッダタグにセルのデフォルトスタイル(table:default-cell-style-name属性)が指定されています。 その列に属するセルでスタイル名が省略されているものはデフォルトスタイルが適用されます。 1行全部が同じスタイルになっている場合も同様に行タグにセルのデフォルトスタイルが指定されています。

テキストの装飾

text:pタグ内で文字修飾があるとその部分がtext:spanタグで囲まれます。 その範囲の文字全てが半角または全角の場合1組のtext:spanタグになります。 しかし、範囲に全角と半角が混ざっているとブツ切りになってしまいます。 例えば「サンプルdataその1」という文字列を選択してイタリック体にすると次のように保存されます。

<text:p>
    ...
    <text:span text:style-name="T1">サンプル</span>
    <text:span text:style-name="T1">data</span>
    <text:span text:style-name="T1">その</span>
    <text:span text:style-name="T1">1</span>
    ...
</text:p>

抵抗があるかもしれませんが、文字修飾しそうな単語を全て全角で書くと決めてしまったら1組のタグで済みます。 javaのコードで、同じstyle-nameが続いていたらひとまとめにするのも手です。

ドキュメント全体の書式

メニューバーの「書式」→「スタイルと書式」メニューから「スタイルと書式」ダイアログを表示して設定するとドキュメント全体に影響します。 そのときの設定はcontent.xmlではなくstyles.xmlに記述されています。