L.2.3.10 Shared String Table

image

The main difference between plain text and rich text is seen in the string table itself. The si element is capable of containing rich text expressions:

<si>
  <r>
    <t xml:space="preserve">This </t>
  </r>
  <r>
    <rPr>
      <b/>
      <sz val="11"/>
      <color theme="1"/>
      <rFont val="Calibri"/>
      <family val="2"/>
      <scheme val="minor"/>
    </rPr>
    <t xml:space="preserve">string </t>
  </r>
  <r>
    <rPr>
      <sz val="11"/>
      <color rgb="FFFF0000"/>
      <rFont val="Calibri"/>
      <family val="2"/>
      <scheme val="minor"/>
    </rPr>
    <t>has</t>
  </r>
  <r>
    <rPr>
      <sz val="11"/>
      <color theme="1"/>
      <rFont val="Calibri"/>
      <family val="2"/>
      <scheme val="minor"/>
    </rPr>
    <t xml:space="preserve"> a </t>
  </r>
  <r>
    <rPr>
      <i/>
      <sz val="11"/>
      <color rgb="FF00B050"/>
      <rFont val="Calibri"/>
      <family val="2"/>
      <scheme val="minor"/>
    </rPr>
    <t>variety</t>
  </r>
  <r>
    <rPr>
      <sz val="11"/>
      <color theme="1"/>
      <rFont val="Calibri"/>
      <family val="2"/>
      <scheme val="minor"/>
    </rPr>
    <t xml:space="preserve"> of </t>
  </r>
  <r>
    <rPr>
      <u/>
      <sz val="11"/>
      <color theme="1"/>
      <rFont val="Calibri"/>
      <family val="2"/>
      <scheme val="minor"/>
    </rPr>
    <t>formatting</t>
  </r>
  <r>
    <rPr>
      <sz val="11"/>
      <color theme="1"/>
      <rFont val="Calibri"/>
      <family val="2"/>
      <scheme val="minor"/>
    </rPr>
    <t xml:space="preserve"> applied</t>
  </r>
</si>

Reading the string from left to right as it appears in the cell, each word represents a change in formatting. This change in formatting corresponds to separate run elements r to separate the text with different formatting. Every word is expressed using a run element r, which expresses the properties of the text rPr and the text itself t.

Since there are no properties associated with the first word “This”, the text inherits the default formatting for the cell.

The rich text expression for the second string “string” contains a bold faced font element indicator b in the run properties rPr, therefore this text has bold face applied. While other text formatting properties are expressed, they are the same as the cell formatting. This additional information is expressed for the sake of clarity and completeness of expression.

The rich text expression for the third string “has” contains a color element indicator color in the run properties rPr. Therefore, the color of the text associated with this set of run properties is red, according to the color value expressed.

The formatting for the remaining words in this rich text string can be deduced in a similar manner, such that “a” has default formatting applied, “variety” is both italicized and green, “of” has default formatting applied, “formatting” is underlined, and “applied” has default formatting applied.

Last updated on