スタイルに関する情報は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が連番で命名します。 スタイルのファミリーには次のようなものがあります。
参照元 | ファミリー | 連番の頭 | スタイルの指定内容 |
---|---|---|---|
シート | table | ta | ??? |
列ヘッダ | table-column | co | 列幅、改ページの許可など |
行 | table-row | ro | 行の高さ、改ページの許可など |
セル | table-cell | ce | 文字修飾、背景色、罫線など |
テキスト | text | T | 文字修飾など |
行、列のスタイルには文字修飾、背景色、罫線の設定項目は記録されません。 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に記述されています。