Open XML SDK 備忘録

おもにExcelファイル (.xlsx) を扱います。

P-SPACE
就学奨励費システム

マイナンバー対応 特別支援教育 就学奨励費 支給業務支援システム

詳細...

P-SPACE
就学奨励費ソフトウェア

特別支援教育 就学奨励費 支給業務支援ソフトウェア

詳細...

開発室
(備忘録そのほか)

システム開発にまつわる(かもしれない)調査・実験結果など

詳細...

セルの書式設定 - その2

FontID属性

FontID属性についても(numFmtId属性と同様に)フォントの定義のID番号が指定されています。

以下の図のセルB4を例に見ていきます。

セルB4の定義を確認すると、s属性の値は"18"となっています。

<x:sheetData>
【中略】
  <x:row r="4" spans="1:5" ht="19.5" thickBot="1" x14ac:dyDescent="0.45">
    <x:c r="B4" s="18">
      <x:v>17</x:v>
    </x:c>
  </x:row>
【中略】
</x:sheetData>

18番目(最初のxf要素を0として数えるので正しくは19番目)の xf要素(CellFormat) を確認すると、fontID属性は"4"となっています。

<x:xf numFmtId="0" fontId="4" fillId="0" borderId="0" xfId="0" applyFont="1">
  <x:alignment vertical="center" />
</x:xf>

※ここまでは前回説明した内容です。

fontの定義は/xl/style.xmlのFonts要素にあります。

4番目(最初のxf要素を0として数えるので正しくは5番目)のfont要素(上図の青色カッコ)を見ると、フォントが「游ゴシック」でサイズが11ポイント、フォントの色(ARGB)が「FF0070C0」となっていることが読み取れます。

familyはフォントファミリーを指定しています。

charsetは文字コードです。ここで128はShiftJISであることを示します。(0はANSI 、 129はハングル、161はギリシャ語 、 ...などと定義されています。)

schemaは、シートに適用されているテーマの一部としてフォントが定義されている場合に、そのフォントがそのテーマにおいてメジャーフォントなのかマイナーフォントなのかを示します。

このfont要素には含まれていませんが、他にもi要素(斜体) 、b要素(太字)、u要素(下線)、stroke要素(取り消し線)などが定義されます。

fillId属性

...もうパターンが読めてきたことと思いますsmiley

fillIdはセルの塗りつぶしに関する定義(fills要素)におけるID番号です。fills要素も /xl/style.xml に定義されています。

セルE3を例にとると、このセルの塗りつぶしの定義は以下のようになっています。

<x:fills count="7" xmlns:x="【中略】">
【中略】
  <x:fill>
    <x:patternFill patternType="darkTrellis">
      <x:fgColor rgb="FFD37F23" />
    </x:patternFill>
  </x:fill>
【中略】
</x:fills>

いわゆる「べた塗り」(上図セルA3のような)の場合はpatternType属性は"solid"となります。
fgColor(Foreground Color : 前景色)要素にはrgb属性によって直接色を指定するほかに、theme属性によってテーマの色を指定したり、indexed属性によって色パレットのインデックス番号を指定したりすることができます。

borderId属性

borderIdはセルの罫線に関する定義(borders要素)におけるID番号です。 borders 要素も /xl/style.xml に定義されています。

セルE5を例にとると、 このセルの罫線の定義は以下のようになっています。

  <x:border>
    <x:left />
    <x:right />
    <x:top style="medium">
      <x:color auto="1" />
    </x:top>
    <x:bottom style="medium">
      <x:color auto="1" />
    </x:bottom>
    <x:diagonal />
  </x:border>

left要素、right要素、top要素、bottom要素はそれぞれ、左罫線、右罫線、上罫線、下罫線の設定です。
top要素、bottom要素のstyle属性には、それぞれmedium (中くらい)の太さがセットされています。罫線の色はauto(自動)となっています。

diagonal要素は斜め罫線の設定です。斜め罫線の向き(右上がり/右下がり)はborder要素のdiagonalUp属性、diagonalDown属性で指定します。
例えばセルC5であれば、以下のようになります。

  <x:border diagonalUp="1" diagonalDown="1">
    <x:left />
    <x:right />
    <x:top />
    <x:bottom />
    <x:diagonal style="thin">
      <x:color auto="1" />
    </x:diagonal>
  </x:border>

xfId属性とそのほかの属性については次回取り上げます。