private CT_Rst buildCTRst(string text, SortedDictionary <int, CT_RPrElt> formats)
        {
            if (text.Length != this.GetLastKey(formats.Keys))
            {
                throw new ArgumentException("Text length was " + (object)text.Length + " but the last format index was " + (object)this.GetLastKey(formats.Keys));
            }
            CT_Rst ctRst      = new CT_Rst();
            int    startIndex = 0;

            SortedDictionary <int, CT_RPrElt> .KeyCollection.Enumerator enumerator = formats.Keys.GetEnumerator();
            while (enumerator.MoveNext())
            {
                int     current = enumerator.Current;
                CT_RElt ctRelt  = ctRst.AddNewR();
                string  str     = text.Substring(startIndex, current - startIndex);
                ctRelt.t = str;
                XSSFRichTextString.PreserveSpaces(ctRelt.t);
                CT_RPrElt format = formats[current];
                if (format != null)
                {
                    ctRelt.rPr = format;
                }
                startIndex = current;
            }
            return(ctRst);
        }
        public void Append(string text, XSSFFont font)
        {
            if (this.st.sizeOfRArray() == 0 && this.st.IsSetT())
            {
                CT_RElt ctRelt = this.st.AddNewR();
                ctRelt.t = this.st.t;
                XSSFRichTextString.PreserveSpaces(ctRelt.t);
                this.st.unsetT();
            }
            CT_RElt ctRelt1 = this.st.AddNewR();

            ctRelt1.t = text;
            XSSFRichTextString.PreserveSpaces(ctRelt1.t);
            CT_RPrElt pr = ctRelt1.AddNewRPr();

            if (font == null)
            {
                return;
            }
            this.SetRunAttributes(font.GetCTFont(), pr);
        }
 public XSSFRichTextString(string str)
 {
     this.st   = new CT_Rst();
     this.st.t = str;
     XSSFRichTextString.PreserveSpaces(this.st.t);
 }