Class UnicodeString

java.lang.Object
org.apache.poi.hssf.record.common.UnicodeString
All Implemented Interfaces:
Comparable<UnicodeString>

public class UnicodeString extends Object implements Comparable<UnicodeString>
Title: Unicode String

Description: Unicode String - just standard fields that are in several records. It is considered more desirable then repeating it in all of them.

This is often called a XLUnicodeRichExtendedString in MS documentation.

REFERENCE: PG 264 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)

REFERENCE: PG 951 Excel Binary File Format (.xls) Structure Specification v20091214

  • Constructor Details

    • UnicodeString

      public UnicodeString(String str)
    • UnicodeString

      public UnicodeString(RecordInputStream in)
      construct a unicode string record and fill its fields, ID is ignored
      Parameters:
      in - the RecordInputstream to read the record from
  • Method Details

    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object o)
      Our handling of equals is inconsistent with compareTo. The trouble is because we don't truely understand rich text fields yet it's difficult to make a sound comparison.
      Overrides:
      equals in class Object
      Parameters:
      o - The object to compare.
      Returns:
      true if the object is actually equal.
    • getCharCount

      public int getCharCount()
      get the number of characters in the string, as an un-wrapped int
      Returns:
      number of characters
    • getCharCountShort

      public short getCharCountShort()
      get the number of characters in the string, wrapped as needed to fit within a short
      Returns:
      number of characters
    • setCharCount

      public void setCharCount(short cc)
      set the number of characters in the string
      Parameters:
      cc - - number of characters
    • getOptionFlags

      public byte getOptionFlags()
      get the option flags which among other things return if this is a 16-bit or 8 bit string
      Returns:
      optionflags bitmask
    • setOptionFlags

      public void setOptionFlags(byte of)
      set the option flags which among other things return if this is a 16-bit or 8 bit string
      Parameters:
      of - optionflags bitmask
    • getString

      public String getString()
      Returns:
      the actual string this contains as a java String object
    • setString

      public void setString(String string)
      set the actual string this contains
      Parameters:
      string - the text
    • getFormatRunCount

      public int getFormatRunCount()
    • getFormatRun

      public UnicodeString.FormatRun getFormatRun(int index)
    • addFormatRun

      public void addFormatRun(UnicodeString.FormatRun r)
      Adds a font run to the formatted string. If a font run exists at the current charcter location, then it is replaced with the font run to be added.
    • formatIterator

      public Iterator<UnicodeString.FormatRun> formatIterator()
    • removeFormatRun

      public void removeFormatRun(UnicodeString.FormatRun r)
    • clearFormatting

      public void clearFormatting()
    • getExtendedRst

      public UnicodeString.ExtRst getExtendedRst()
    • swapFontUse

      public void swapFontUse(short oldFontIndex, short newFontIndex)
      Swaps all use in the string of one font index for use of a different font index. Normally only called when fonts have been removed / re-ordered
    • toString

      public String toString()
      unlike the real records we return the same as "getString()" rather than debug info
      Overrides:
      toString in class Object
      Returns:
      String value of the record
      See Also:
    • getDebugInfo

      public String getDebugInfo()
      return a character representation of the fields of this record
      Returns:
      String of output for biffviewer etc.
    • serialize

      public void serialize(ContinuableRecordOutput out)
      Serialises out the String. There are special rules about where we can and can't split onto Continue records.
    • compareTo

      public int compareTo(UnicodeString str)
      Specified by:
      compareTo in interface Comparable<UnicodeString>
    • clone

      public Object clone()
      Overrides:
      clone in class Object