3.2.3 PVCellStyle and PVTextStyle

PVCellStyle =>
   ff ff 00 00 "PVCellStyle"
   AreaColor[title-color]

PVTextStyle =>
   ff ff 00 00 "PVTextStyle" 00
   AreaStyle[title-style] MostAreas*7[most-areas]

MostAreas =>
   06 80
   AreaColor[color] 08 80 00 AreaStyle[style]

These sections hold the styling and coloring for each of the 8 areas in a pivot table. They are conceptually similar to the area style information in SPV light members (see Areas).

The styling and coloring for the title area is split between PVCellStyle and PVTextStyle: the former holds title-color, the latter holds title-style. The style for the remaining 7 areas is in most-areas in PVTextStyle, in the following order: layers, corner, row labels, column labels, data, caption, and footer.

AreaColor =>
   00 01 00 int32[color10] int32[color0] byte[shading] 00

AreaColor represents the background color of an area. TLO files, but not SPV files, describe backgrounds that are a shaded combination of two colors: shading of 0 is pure color0, shading of 10 is pure color10, and value in between mix pixels of the two different colors in linear degree. PSPP does not implement shading, so for 1 ≤ shading ≤ 9 it interpolates RGB values between colors to arrive at an intermediate shade.

AreaStyle =>
   int16[valign] int16[halign] int16[decimal-offset]
   int16[left-margin] int16[right-margin] int16[top-margin] int16[bottom-margin]
   00 00 01 00
   int32[font-size] int16[stretch]
   00*2
   int32[rotation-angle]
   00*4
   int16[weight]
   00*2
   bool[italic] bool[underline] bool[strikethrough]
   int32[rtf-charset-number]
   byte[x]
   byte[font-name-len] byte*[font-name-len][font-name]
   int32[text-color]
   00*2

AreaStyle represents style properties of an area.

valign is 0 for top alignment, 1 for bottom alginment, 2 for center.

halign is 0 for left alignment, 1 for right, 2 for center, 3 for mixed, 4 for decimal. For decimal alignment, decimal-offset is the offset of the decimal point in 20ths of a point.

left-margin, right-margin, top-margin, and bottom-margin are also measured in 20ths of a point.

font-size is negative 96ths of an inch, e.g. 9 point is -12 or 0xfffffff3.

stretch has something to do with font size or stretch. The usual value is 01 and values larger than that do weird things. A reader can safely ignore it.

rotation-angle is a font rotation angle. A reader can safely ignore it.

weight is 400 for a normal-weight font, 700 indicates bold. (This is a Windows API convention.)

italic and underline have the obvious meanings. So does strikethrough, which PSPP ignores.

rtf-charset-number is a character set number from RTF. A reader can safely ignore it.

The meaning of x is unknown. Values 12, 22, 31, and 32 have been observed.

The font-name is the name of a font, such as Arial. Only US-ASCII characters have been observed here.

text-color is the color of the text itself.